取消
顯示的結果
而不是尋找
你的意思是:

如何實現源到目標ETL PySpark使用增量表映射表嗎

anonymous1
新的貢獻者三世

架構設計:

:Miltiple CSV文件(SourceFile1 SourceFile2)

目標:三角洲表像(Target_Table)

Excel文件:ETL_Mapping_Sheet

TargetTable,文件列:SourceTable, SourceColumn TargetColum MappingLogic

從表或MappingLogic列包含(SELECT *

SELECT * FROM SourceFile1左加入SourceFile2 B

A.ID=B.ID像SQL語句)。

什麼:我怎麼能使用MappingLogic cloumns dataframe構建映射邏輯值? ?

我可以直接執行SQL語句使用列值? ?

我的方法:

  1. Excel文件加載到dataframe (df_mapping)
  2. 賦值的MappingLogic cloumns (SQL Select語句)到一個變量中
  3. 調用spark.sql (variablename)時,它將執行SQL查詢,而不是100%確定如何做到這一點

從一個ETL映射表更新樣本行:

圖像

7回複7

Hubert_Dudek1
尊敬的貢獻者三世

我認為你可以構造SQL查詢和使用循環來填補你的代碼。

火花。sql (f”插入目標}{....

或者更好的是,使用合並

AmanSehgal
尊敬的貢獻者三世

繼@Werner Stinckens回應,如果你可以給一個例子,那麼它將會很好。

理想情況下你可以閱讀python和excel文件的每一行每一列作為參數傳遞給一個函數。

如;TargetTable, def apply_mapping_logic (SourceTable SourceColumn TargetColum, MappingLogic)

在這個函數可以定義您希望怎麼處理映射邏輯。

再次,要做到這一點,你需要想出一個邏輯基於不同類型的映射邏輯你excel文件。

anonymous1
新的貢獻者三世

@Aman Sehgal

謝謝你的回應,我更新樣本映射的例子

我已經映射邏輯mappingsheet所以我現在仍然需要這個額外的函數…我可以直接這個SQL邏輯存儲在一個變量和直接exeute像下麵。

Pyspark代碼:

變量= df.select (mappinglogic) .collect () [0]

df_spark_sql =火花。sql(變量)

之後,如果我想執行任何進一步的操作,我可以很容易地df_spark_sql dataframe

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map