簡體   English   中英

AWS Glue Python 作業未創建新的數據目錄分區

[英]AWS Glue Python Job not creating new Data Catalog partitions

我使用 Glue Studio 創建了一個 AWS Glue 作業。 它從 Glue 數據目錄中獲取數據,進行一些轉換,然后寫入不同的數據目錄。

在配置目標節點時,我啟用了運行后創建新分區的選項:

在此處輸入圖像描述

作業成功運行,數據以正確的分區文件夾結構寫入 S3,但在實際數據目錄表中沒有創建新分區 - 我仍然需要運行 Glue Crawler 來創建它們。

生成的腳本中負責創建分區的代碼是這樣的(作業的最后兩行):

DataSink0 = glueContext.write_dynamic_frame.from_catalog(frame = Transform4, database = "tick_test", table_name = "test_obj", transformation_ctx = "DataSink0", additional_options = {"updateBehavior":"LOG","partitionKeys":["date","provider"],"enableUpdateCatalog":True})
job.commit()

我究竟做錯了什么? 為什么沒有創建新分區? 如何避免必須運行爬蟲才能在 Athena 中獲得可用數據?

我正在使用膠水 2.0 - PySpark 2.4

正如文檔中強調的那樣,向數據目錄添加新分區存在限制,更具體地說,請確保您的用例不與以下任何內容相矛盾:

僅支持 Amazon Simple Storage Service (Amazon S3) 目標。

僅支持以下格式:json、csv、avro 和 parquet。

要使用 parquet 分類創建或更新表,您必須使用適用於 DynamicFrames 的 AWS Glue 優化 parquet 編寫器。

當 updateBehavior 設置為 LOG 時,僅當 DynamicFrame 架構等效於或包含數據目錄表架構中定義的列的子集時,才會添加新分區。

在 ETL 腳本中傳遞的參數與數據目錄表架構中的 partitionKeys 之間,您的 partitionKeys 必須相同且順序相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM