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

分區一個csv文件

andrew0117
貢獻者

當我使用SQL代碼,像“create table myTable (column1字符串,column2字符串)使用csv選項(“分隔符”= ',','標題' = '真的')位置pathToCsv”從一個csv文件中創建一個表存儲在一個文件夾在一個湖Azure數據容器,是成功創建csv文件中的數據。然而,當我把這個表使用相同的代碼並重新創建它的“分區(column1)”在“位置”的聲明之前,桌上還創建成功但沒有數據加載。誰能解釋為什麼發生這種情況呢?謝謝!

1接受解決方案

接受的解決方案

pvignesh92
尊敬的貢獻者

你好@andrew李,當您指定一個路徑和位置關鍵字,火花就會認為這是一個外部表。所以當你把表,你基礎數據是否不會被清除。

所以在你的情況下,這是一個外部表,你文件夾結構應該已經分區前。. . / < table_dir > /月= 1月。現在當你創建一個表提及分區列如月,火花可以掃描存儲和檢測分區。

請檢查如果這是錯過了從你的結束。如果仍然不工作,提供截圖可以幫助理解這個問題

在原帖子查看解決方案

4回複4

ajaypanday6781
尊敬的貢獻者二世

你好@andrew李,

如果你創建外部表刪除表永遠不會刪除實際的數據。

再次嚐試刪除目錄和創建一個新表。

我重新創建表相同的csv文件在相同的位置,所以我不能刪除csv文件。謝謝!

pvignesh92
尊敬的貢獻者

你好@andrew李,當您指定一個路徑和位置關鍵字,火花就會認為這是一個外部表。所以當你把表,你基礎數據是否不會被清除。

所以在你的情況下,這是一個外部表,你文件夾結構應該已經分區前。. . / < table_dir > /月= 1月。現在當你創建一個表提及分區列如月,火花可以掃描存儲和檢測分區。

請檢查如果這是錯過了從你的結束。如果仍然不工作,提供截圖可以幫助理解這個問題

基本上,您不能創建一個分區表基於一個csv文件,隻需使用sql來創建分區表()位置“pathToCsv”文件?因為一個csv文件沒有paritioned文件結構位置。

我理解條款意味著外部表的位置和實際數據存儲在這裏。有時令人困惑,因為這裏的位置實際上是csv文件,並從這個csv文件創建一個表後,在這個位置什麼也沒有發生。如果你使用scala火花,讀這csv dataframe,然後寫回相同的位置,保持csv格式,並添加分區,像spark.read.csv.load .write (“pathToCsv”)。選項(“路徑”,“PathToCSV”) .partitionBy .mode (“partitionColumn”)(“覆蓋”).format (csv) .saveAsTable (“mytable”),你會有一些新的文件在這個位置。

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

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

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

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

Baidu
map