Menggunakan FindMatches dalam pekerjaan visual - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan FindMatches dalam pekerjaan visual

Untuk menggunakan FindMatchestransformasi di AWS Glue Studio, Anda dapat menggunakan node Custom Transform yang memanggil FindMatches API. Untuk informasi selengkapnya tentang cara menggunakan transformasi kustom, lihat Membuat transformasi kustom

catatan

Saat ini, FindMatches API hanya berfungsi denganGlue 2.0. Untuk menjalankan pekerjaan dengan transformasi Kustom yang memanggil FindMatches API, pastikan AWS Glue versi ada Glue 2.0 di tab Job details. Jika versi AWS Glue tidakGlue 2.0, pekerjaan akan gagal saat runtime dengan pesan kesalahan berikut: “tidak dapat mengimpor nama '' dari 'FindMatchesawsglueml.transforms'”.

Prasyarat

Menambahkan FindMatches transformasi

Untuk menambahkan FindMatches transformasi:
  1. Dalam AWS Glue Studio editor pekerjaan, buka panel Sumber daya dengan mengklik simbol silang di sudut kiri atas grafik pekerjaan visual dan pilih Sumber data dengan memilih tab Data. Ini adalah sumber data yang ingin Anda periksa kecocokan.

    Tangkapan layar menunjukkan simbol silang di dalam lingkaran. Ketika Anda mengklik ini di editor pekerjaan visual, panel sumber daya terbuka.
  2. Pilih simpul sumber data, lalu buka panel Resource dengan mengklik simbol silang di sudut kiri atas grafik pekerjaan visual dan cari 'custom transform'. Pilih node Custom Transform untuk menambahkannya ke grafik. Transformasi Kustom ditautkan ke node sumber data. Jika tidak, Anda dapat mengklik node Custom Transform dan memilih tab properti Node, lalu di bawah orang tua Node, pilih sumber data.

  3. Klik node Custom Transform di grafik visual, lalu pilih tab Properti Node dan beri nama transformasi kustom. Disarankan agar Anda mengganti nama transformasi sehingga nama transformasi mudah diidentifikasi dalam grafik visual.

  4. Pilih tab Transform, di mana Anda dapat mengedit blok kode. Di sinilah kode untuk memanggil FindMatches API dapat ditambahkan.

    Tangkapan layar menunjukkan blok kode di tab Transform saat node Custom Transform dipilih.

    Blok kode berisi kode yang telah diisi sebelumnya untuk membantu Anda memulai. Timpa kode yang telah diisi sebelumnya dengan templat di bawah ini. Template memiliki placeholder untuk transformId, yang dapat Anda berikan.

    def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dynf = dfc.select(list(dfc.keys())[0]) from awsglueml.transforms import FindMatches findmatches = FindMatches.apply(frame = dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  5. Klik node Custom Transform di grafik visual, lalu buka panel Resource dengan mengklik simbol silang di sudut kiri atas grafik pekerjaan visual dan cari 'Select From Collection'. Tidak perlu mengubah pilihan default karena hanya ada satu DynamicFrame di koleksi.

  6. Anda dapat terus menambahkan transformasi atau menyimpan hasilnya, yang sekarang diperkaya dengan kolom tambahan find match. Jika Anda ingin mereferensikan kolom-kolom baru tersebut dalam transformasi hilir, Anda perlu menambahkannya ke skema keluaran transformasi. cara termudah untuk melakukannya adalah dengan memilih tab pratinjau data dan kemudian di tab skema pilih “Gunakan skema tinjauan data”.

  7. Untuk menyesuaikan FindMatches, Anda dapat menambahkan parameter tambahan untuk diteruskan ke metode 'terapkan'. Lihat FindMatches kelas.

Menambahkan FindMatches transformasi bertahap

Dalam kasus kecocokan inkremental, prosesnya sama dengan Menambahkan FindMatches transformasi dengan perbedaan berikut:

  • Alih-alih node induk untuk transformasi kustom, Anda memerlukan dua node induk.

  • Node induk pertama harus berupa kumpulan data.

  • Node induk kedua harus berupa kumpulan data tambahan.

    Ganti transformId dengan Anda transformId di blok kode template:

    def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dfs = list(dfc.values()) dynf = dfs[0] inc_dynf = dfs[1] from awsglueml.transforms import FindIncrementalMatches findmatches = FindIncrementalMatches.apply(existingFrame = dynf, incrementalFrame = inc_dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  • Untuk parameter opsional, lihat FindIncrementalMatches kelas.