我的所有資料都在 S3 位置可用 s3://sample/input_data
我通過部署 AWS EMR 和使用 PySpark 來完成我的 ETL。
PySpark 腳本非常簡單。
- 我加載
s3://sample/input_data為火花資料幀。 - 按一列對其進行磁區。
- 將資料幀保存為 Parquet 檔案,并在“追加”模式下將寫入選項保存到 S3 位置
s3://sample/output_data - 然后將所有檔案復制
s3://sample/input_data到s3://sample/archive_data并洗掉所有資料s3://sample/input_data
所以當有新資料進來時s3://sample/input_data,它只處理新檔案并將其保存在s3://sample/output_data磁區中。
是否有 AWS EMR 提供的任何內置閂鎖,我應該知道我可以使用它而不是執行 PySpark 腳本的最后一步?
uj5u.com熱心網友回復:
您可以將Delta Lake用于這些目的,也可以按時間間隔對輸入目錄進行磁區,s3://sample/input_data/year=2021/month=11/day=11/這樣您就可以只處理該時間間隔內的資料。
uj5u.com熱心網友回復:
您可以在 EMR 中使用階躍函式。jar 將是 script-runner.jar s3://.elasticmapreduce/libs/script-runner/script-runner.jar 其中是您的 Amazon EMR 集群所在的區域。您可以使用 script-runner.jar 運行保存在本地或集群上 Amazon S3 上的腳本
您必須指定要運行的 shell 腳本。在你的情況下 cp 命令
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360736.html
