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

無法保存火花Dataframe司機節點的本地文件係統為CSV文件

dataslicer
貢獻者

運行Azure磚企業DBR 8.3毫升單個節點上運行,與Python筆記本。

我有2個小火花dataframes源通過憑證透傳我可以閱讀從ADLSgen2通過“abfss: / /”方法和顯示的全部內容dataframe沒有任何問題。

save CSV操作成功完成。然而,當我檢查CSV輸出目錄,它似乎隻存儲文件的指針,而不是實際dataframe。

這是代碼的順序從頭到尾細胞:

% sh mkdir /輸出數據類型(smallDF1)————[29]: pyspark.sql.dataframe。DataFrame smallDF1.count()——輸出[27]:264095 smallDF2.count()——輸出[28]:66024 smallDF1.coalesce (1) .write。csv(“文件:/ / /數據/ df1”,標題= '真的')smallDF2.coalesce (1) .write。csv(“文件:/ / /數據/ df2”,標題= '真的')% sh ls過程/數據/ df1 / ls過程/數據/ df2 /——輸出總20根4096年9月27日22:41 drwxr-xr-x 2根。drwxr-xr-x 8根根4096年9月27日22:41 . .-rw-r - r - 1根根8 9月27日22:41 ._SUCCESS。crc -rw-r - r - 1根根12 9月27日22:41 ._committed_2366694737653163888。crc -rw-r - r - 1根根0 9月27日22:41 _SUCCESS -rw-r - r - 1根根112年9月27日22:41 _committed_2366694737653163888總20根4096年9月27日22:41 drwxr-xr-x 2根。drwxr-xr-x 8根根4096年9月27日22:41 . .-rw-r - r - 1根根8 9月27日22:41 ._SUCCESS。crc -rw-r - r - 1根根12 9月27日22:41 ._committed_114254853464039644。crc -rw-r--r-- 1 root root 0 Sep 27 22:41 _SUCCESS -rw-r--r-- 1 root root 111 Sep 27 22:41 _committed_114254853464039644 %sh cat /data/train/_committed_2366694737653163888 -- OUTPUT -- {"added":["part-00000-tid-2366694737653163888-4b4ac3f3-9aa3-40f8-8710-cef6b958e3bc-32-1-c000.csv"],"removed":[]}

我在這兒失蹤能夠寫一個CSV文件?

我想讀這兩個使用R CSV文件。

感謝您的任何建議/指針/建議。

1接受解決方案

接受的解決方案

DouglasLinder
新的貢獻者三世

也許別人可以回答你,但是我認為這是一個限製的火花;它不能寫dbfs外。

我使用:

df.toPandas () .to_csv (“/ tmp / foo.csv”)

對於小文件。

對於大文件,寫dbfs路徑,然後使用shell複製/ dbfs / foo / partXXXX。dbfs csv。

在原帖子查看解決方案

4回複4

DouglasLinder
新的貢獻者三世

也許別人可以回答你,但是我認為這是一個限製的火花;它不能寫dbfs外。

我使用:

df.toPandas () .to_csv (“/ tmp / foo.csv”)

對於小文件。

對於大文件,寫dbfs路徑,然後使用shell複製/ dbfs / foo / partXXXX。dbfs csv。

dataslicer
貢獻者

謝謝你這兩個很棒很棒的答案!

他們的工作!

dazfuller
貢獻者三世

不應該有需要移動這些dbfs之外。理想的情況是你想寫類似“dbfs: / FileStore /培訓/ df1”。然後如果你想訪問他們不懂dbfs文件係統的東西,像直接訪問它使用posix路徑“/ dbfs / FileStore /培訓/ df1 / partxxxx.csv”

Dan_Z
尊敬的貢獻者

現代火花運營的設計選擇單獨的存儲和計算。所以保存一個csv河的本地磁盤沒有意義的幾個原因:

  • 工作者節點沒有司機的磁盤。他們需要將數據發送到司機,這是緩慢的,繁重的,可能會導致內存/ IO問題。
  • 火花是為了寫Hadoop-inspired文件係統,像DBFS, S3, Azure Blob /代,等等。這樣,工人們可以編寫並發。

你的方式,你可以收集結果的司機,喜歡用yourDF.toPandas()然後保存本地司機磁盤熊貓數據幀。請注意,如果你把集群將失去任何本地磁盤。本地磁盤應該被用作tmp位置,。

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

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

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

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

Baidu
map