

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

# SDK Prosesor Fitur Toko Fitur
<a name="feature-store-feature-processor-sdk"></a>

Deklarasikan definisi Prosesor Fitur Toko Fitur dengan mendekorasi fungsi transformasi Anda dengan dekorator. `@feature_processor` SageMaker AI SDK for 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\$1processor Decorator](https://sagemaker.readthedocs.io/en/stable/api/prep_data/feature_store.html#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)](https://github.com/aws/sagemaker-python-sdk/tree/master/src/sagemaker/feature_store/feature_processor).

Kode berikut adalah contoh dasar tentang cara menggunakan `@feature_processor` dekorator. Untuk contoh kasus penggunaan yang lebih spesifik, lihat[Contoh kode Pemrosesan Fitur untuk kasus penggunaan umum](feature-store-feature-processor-examples.md).

Feature Processor 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 input CSV dari Amazon S3 untuk dimuat dan disediakan ke fungsi transformasi Anda (misalnya,`transform`), 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 Fitur](https://sagemaker.readthedocs.io/en/stable/api/prep_data/feature_store.html#feature-processor-data-source) di Amazon Feature Store Baca Dokumen.
+ `output`(str): ARN dari grup fitur untuk menelan output dari fungsi yang didekorasi.
+ `target_stores`(Opsional [List [str]]): Daftar toko (misalnya, `OnlineStore` atau`OfflineStore`) untuk dicerna ke output. Jika tidak ditentukan, data 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 kunci`system`, 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 (lihat[Eksekusi terjadwal dan berbasis acara untuk pipeline Prosesor Fitur](feature-store-feature-processor-schedule-pipeline.md)) maka nilainya ditetapkan ke waktu yang dijadwalkan untuk dijalankan. Argumen dapat diganti selama eksekusi sinkron menggunakan API eksekusi SDK untuk mendukung kasus penggunaan seperti pengisian ulang data atau menjalankan kembali eksekusi masa lalu yang tidak terjawab. Nilainya adalah waktu saat ini jika Prosesor Fitur berjalan dengan cara lain.

Untuk informasi tentang penulisan kode Spark, lihat Panduan Pemrograman [SQL Spark](https://spark.apache.org/docs/latest/sql-programming-guide.html).

Untuk contoh kode lainnya untuk kasus penggunaan umum, lihat. [Contoh kode Pemrosesan Fitur untuk kasus penggunaan umum](feature-store-feature-processor-examples.md) 

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](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_featurestore.html). 