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
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 (
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,
adalah wilayah sumber daya, us-east-1
adalah ID akun pemilik sumber daya, dan 111122223333
merupakan nama grup fitur.your-feature-group-name
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_processor
Parameternya 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 Fiturdi 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
, sepertischeduled_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