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

你能使用固定寬度自動裝卸機文件嗎?

david_torres
新的貢獻者二世

我有一個收集固定寬度的文件我想攝取每月自動裝卸機,但我似乎無法找到一個例子。

我可以讀文件到Dataframes使用python函數映射每個字段的索引和長度沒有問題,但是我不確定這些DF的可以直接使用在readstream()調用。

可以更好的把拚花在閱讀這些文件嗎?

3回複3

etsyal1e2r3
貢獻者

自動裝卸機是一個流dataframe /表或表直接寫入一次= True選項(單個批處理)。所以你想自動裝載每個源到自己的表中加入他們在一起後邏輯如果這是必需的。自動裝卸機可以設置為inferSchema或救援列如果模式曾經chabges(聽起來像他們仍然固定在你的情況下)。所以尋找例子使用,一旦= true選項和.saveAsTable (“< catalog.schema.table >”)選項。讓我知道如果你有任何問題。

Vidula_Khanna
主持人
主持人

嗨@David托雷斯

謝謝你發布你的問題在我們的社區!我們很高興幫助你。

幫助我們為您提供最準確的信息,請您花一些時間來回顧反應和選擇一個最好的回答了你的問題嗎?

這也將有助於其他社區成員可能也有類似的問題在未來。謝謝你的參與,讓我們知道如果你需要任何進一步的援助!

david_torres
新的貢獻者二世

我找到了一個辦法我需要什麼,我可以把這個應用到任何固定寬度的文件。將分享對於那些試圖做同樣的事情。

我完成這個在筆記本裏,並將解釋Python代碼:

  • 進口所需的庫,定義一個模式。
進口dlt pyspark.sql進口。函數作為f#模式定義模式= {header_1: {“idx”: 1、“蘭”:9},“header_2”: {“idx”: 10“蘭”:9},“header_3”: {“idx”: 20,“蘭”:9},“header_n”: {“idx”: 30,“蘭”:x}}
  • 創建一個三角洲住表函數映射文件(s)到一個基於dataframe和模式定義的列。
  • 生我攝取這些數據,我也將兩列添加到跟蹤源文件和修改時間。
“創建三角洲住表使用sql函數調整數據,把input_file_name()和current_timestamp ()“‘@dlt。表def表名():df = spark.read.text返回df (“folder_containing_data”)。選擇(*(λx: F.trim (df.value地圖。substr(模式[x] [' idx '],模式[x][‘蘭’])).alias (x)模式)。withColumn (source_file F.lit (F.input_file_name ()))。withColumn (processing_time F.lit (F.current_timestamp ()))
  • 用你的筆記本,你創建一個管道。
歡迎來到磚社區:讓學習、網絡和一起慶祝

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

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

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

Baidu
map