Prosesor Fitur Toko Fitur SDK - Amazon SageMaker

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

Prosesor Fitur Toko Fitur SDK

Deklarasikan definisi Prosesor Fitur Toko Fitur dengan mendekorasi fungsi transformasi Anda dengan dekorator. @feature_processor SageMaker SDKUntuk Python (Boto3) secara otomatis memuat data dari sumber data input yang dikonfigurasi, menerapkan fungsi transformasi yang didekorasi, dan kemudian menyerap data yang diubah ke grup fitur target. Fungsi transformasi yang didekorasi harus sesuai dengan tanda tangan yang diharapkan dari @feature_processor dekorator. Untuk informasi selengkapnya tentang @feature_processor dekorator, lihat @feature_processor Decorator di Amazon SageMaker Feature Store Read the Docs.

Dengan @feature_processor dekorator, fungsi transformasi Anda berjalan di lingkungan runtime Spark di mana argumen input yang diberikan ke fungsi Anda dan nilai pengembaliannya adalah Spark. DataFrames Jumlah parameter input dalam fungsi transformasi Anda harus sesuai dengan jumlah input yang dikonfigurasi di @feature_processor dekorator.

Untuk informasi selengkapnya tentang @feature_processor dekorator, lihat Feature Processor Feature Store SDK for Python (Boto3).

Kode berikut adalah contoh dasar tentang cara menggunakan @feature_processor dekorator. Untuk contoh kasus penggunaan yang lebih spesifik, lihatContoh kode Pemrosesan Fitur untuk kasus penggunaan umum.

Prosesor Fitur SDK dapat diinstal dari SageMaker Python SDK dan tambahannya menggunakan perintah berikut.

pip install sagemaker[feature-processor]

Dalam contoh berikut, us-east-1 adalah wilayah sumber daya, 111122223333 adalah ID akun pemilik sumber daya, dan your-feature-group-name merupakan nama grup fitur.

Berikut ini adalah definisi prosesor fitur dasar, di mana @feature_processor dekorator mengonfigurasi CSV input dari Amazon S3 untuk dimuat dan disediakan ke fungsi transformasi Anda (misalnyatransform,), dan menyiapkannya untuk dikonsumsi ke grup fitur. Baris terakhir menjalankannya.

from sagemaker.feature_store.feature_processor import CSVDataSource, feature_processor CSV_DATA_SOURCE = CSVDataSource('s3://your-bucket/prefix-to-csv/') OUTPUT_FG = 'arn:aws:sagemaker:us-east-1:111122223333:feature-group/your-feature-group-name' @feature_processor(inputs=[CSV_DATA_SOURCE], output=OUTPUT_FG) def transform(csv_input_df): return csv_input_df transform()

@feature_processorParameternya meliputi:

  • inputs(List [str]): Daftar sumber data yang digunakan dalam Prosesor Fitur Toko Fitur Anda. Jika sumber data Anda adalah grup fitur atau disimpan di Amazon S3, Anda mungkin dapat menggunakan definisi sumber data yang disediakan Toko Fitur untuk pemroses fitur. Untuk daftar lengkap definisi sumber data yang disediakan Toko Fitur, lihat Sumber Data Prosesor SageMaker Fitur di Amazon Feature Store Baca Dokumen.

  • output(str): Grup fitur untuk menelan output dari fungsi yang didekorasi. ARN

  • target_stores(Opsional [List [str]]): Daftar toko (misalnya, OnlineStore atauOfflineStore) untuk dicerna ke output. Jika tidak ditentukan, data akan dicerna ke semua penyimpanan yang diaktifkan grup fitur keluaran.

  • parameters(Dict [str, Any]): Kamus yang akan disediakan untuk fungsi transformasi Anda.

  • enable_ingestion(bool): Bendera untuk menunjukkan apakah output fungsi transformasi dicerna ke grup fitur keluaran. Bendera ini berguna selama fase pengembangan. Jika tidak ditentukan, konsumsi diaktifkan.

Parameter fungsi dibungkus opsional (disediakan sebagai argumen jika disediakan dalam tanda tangan fungsi) meliputi:

  • params(Dict [str, Any]): Kamus didefinisikan dalam parameter. @feature_processor Ini juga berisi parameter yang dikonfigurasi sistem yang dapat direferensikan dengan kuncisystem, seperti scheduled_time parameter.

  • spark(SparkSession): Referensi ke SparkSession instance yang diinisialisasi untuk Aplikasi Spark.

Kode berikut adalah contoh penggunaan spark parameter params dan.

from sagemaker.feature_store.feature_processor import CSVDataSource, feature_processor CSV_DATA_SOURCE = CSVDataSource('s3://your-bucket/prefix-to-csv/') OUTPUT_FG = 'arn:aws:sagemaker:us-east-1:111122223333:feature-group/your-feature-group-name' @feature_processor(inputs=[CSV_DATA_SOURCE], output=OUTPUT_FG) def transform(csv_input_df, params, spark): scheduled_time = params['system']['scheduled_time'] csv_input_df.createOrReplaceTempView('csv_input_df') return spark.sql(f''' SELECT * FROM csv_input_df WHERE date_add(event_time, 1) >= {scheduled_time} ''') transform()

Parameter scheduled_time sistem (disediakan dalam params argumen untuk fungsi Anda) adalah nilai penting untuk mendukung percobaan ulang setiap eksekusi. Nilai dapat membantu mengidentifikasi eksekusi Prosesor Fitur secara unik dan dapat digunakan sebagai titik referensi untuk input berbasis daterange (misalnya, hanya memuat data 24 jam terakhir) untuk menjamin rentang input yang independen dari waktu eksekusi aktual kode. Jika Prosesor Fitur berjalan sesuai jadwal (lihatEksekusi terjadwal dan berbasis acara untuk pipeline Prosesor Fitur) maka nilainya ditetapkan ke waktu yang dijadwalkan untuk dijalankan. Argumen dapat diganti selama eksekusi sinkron menggunakan eksekusi SDK's API untuk mendukung kasus penggunaan seperti pengisian ulang data atau menjalankan kembali eksekusi masa lalu yang terlewat. Nilainya adalah waktu saat ini jika Prosesor Fitur berjalan dengan cara lain.

Untuk informasi tentang penulisan kode Spark, lihat Panduan Pemrograman Spark SQL.

Untuk contoh kode lainnya untuk kasus penggunaan umum, lihat. Contoh kode Pemrosesan Fitur untuk kasus penggunaan umum

Perhatikan bahwa fungsi transformasi yang didekorasi dengan @feature_processor tidak mengembalikan nilai. Untuk menguji fungsi Anda secara terprogram, Anda dapat menghapus atau menambal @feature_processor dekorator sedemikian rupa sehingga berfungsi sebagai pass-through ke fungsi yang dibungkus. Untuk detail selengkapnya tentang @feature_processor dekorator, lihat Amazon SageMaker Feature Store Python SDK.