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

“pathGlobFilter”選項工作在整個文件路徑或文件名嗎?

Ryan512
新的貢獻者三世

我在穀歌的雲環境。我有一個自動裝卸機工作,使用雲文件通知數據加載到三角洲表。我想過濾PubSub主題基於路徑的文件在文件位於GCS,不僅僅是文件名。我可以成功地根據文件名過濾文件,但是如果我試著過濾器的道路上,我得到一個空的數據集。

path_of_file = " gs: / / my_bucket / dir1 dir2 / test_data。json " glob_filter1 = " *。json " glob_filter2 = " * dir2 *。json " glob_filter3 = " * * dir2 * *。json " glob_filter4 = " * / dir2 / *。json火花.readStream.schema(模式).format .option (“cloudFiles (“cloudFiles”)。格式”、“json”) .option (“cloudFiles。在ferColumnTypes", "true") .option("cloudFiles.projectId", "") .option("cloudFiles.useNotifications", "true") .option("checkpointLocation", check_point_location) .option("cloudFiles.includeExistingFiles", "true") .option("cloudFiles.subscription", "") .option("pathGlobFilter", ) .load()

當我使用“glob_filter1”作為“pathGlobFilter”選項,自動裝卸機成功運行和加載文件。當我使用‘glob_filter2’,‘glob_filter3’,或‘glob_filter4自動裝卸機運行,但過濾掉預期的文件。我總是確認預期通知PubSub主題在運行測試之前,它一直在ack主題後測試。

文檔指的是它作為一個水珠過濾器,在文檔中所有的其他地方,水珠過濾器可以過濾的完整路徑。我做錯了什麼嗎?globPathFilter隻工作在文件名和不完整的路徑呢?

1接受解決方案

接受的解決方案

Ryan512
新的貢獻者三世

謝謝你的確認我觀察到不同於文檔。

在原帖子查看解決方案

2回答2

padmajaa
新的貢獻者三世

pathGlobFilter用於隻包含文件文件名匹配模式。語法是org.apache.hadoop.fs.GlobFilter。它不改變分區發現的行為。

加載文件路徑匹配給定的一團模式,同時保持分區的行為發現,您可以使用:

val testGlobFilterDF = spark.read.format(“鋪”)

.option (“pathGlobFilter”、“* .parquet”) / / json文件應該過濾掉

.load(“例子/ src / main /資源/ dir1”)

testGlobFilterDF.show ()

/ / + - - - - - - - - - - - - - +

/ /文件| |

/ / + - - - - - - - - - - - - - +

/ / | file1.parquet |

/ / + - - - - - - - - - - - - - +

Ryan512
新的貢獻者三世

謝謝你的確認我觀察到不同於文檔。

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

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

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

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

Baidu
map