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

為什麼我得到的io。IOException:文件已經存在的saveAsTable覆蓋模式?

MarcLimotte
新的貢獻者二世

我有一個相當小的,簡單的DataFrame,月:

month.schema

org.apache.spark.sql.types。StructType = StructType (StructField(月,DateType,真的),StructField (real_month TimestampType,真的),StructField (month_millis LongType,真的)

本月Dataframe來源於一個Dataframe最初創建從一個來自sc.parallelize抽樣(…)。

我試著將其保存為一個表:

month.write.mode (SaveMode.Overwrite) .saveAsTable (“month_x2”)

我得到一個例外。問題的根源似乎(也參見下麵的全部加亮):

引起的:java。IOException:文件已經存在:/ databricks-prod-storage-virginia dbc - 44061 - e6b - 9 - dd3/0 / user /蜂巢/倉庫/ month_x2 /部分- r - 00002 - 9858 - e235 - 1 - c6c - 4276 - 800 d - 18 - c8a760a416.gz.parquet

我重新啟動集群,重新筆記本,每次都得到相同的結果。我用覆蓋模式(雖然我認為non-overwrite產生不同的錯誤)。同時,我得到這個錯誤,即使我改變表名(即第一saveAsTable甚至呼籲一個給定的名稱)。

錯誤是在附加文件中

12個回複12

ThuyINACTIVETra
新的貢獻者二世

@ReKa謝謝堆。

我用S3a已經和模式非常明確,看起來像這樣:

OUTPUT_SCHEMA = StructType ([StructField (c1, StringType(),真的),StructField (c2, ArrayType (StringType()),真的),StructField (c3, ShortType(),真的),StructField (“c4 BooleanType(),真的)))

我認為這種模式是不夠緊。

筆記:

+“計算優化問題”:你有什麼類型的問題?還是隻寫數據?

+ json和轉換成最後拚花(但注意大小文件可以顯示腐敗分區):你有更多的信息嗎?

多謝。

河
新的貢獻者三世

收緊你的模式,但確保轉換它不會拋出異常。

試著與內存優化節點,你會沒事的。

我的問題是解析很多數據序列文件包含10 k的xml文件和保存表。在我的例子中,主要的瓶頸是移動數據在AWS (S3引發節點)

df.write.mode(覆蓋).format(鋪).saveAsTable (new_name) #改變鋪jsonsonce當你的工作完成後看著上麵的蜂巢目錄表,看看有多少文件大小為0。

ThuyINACTIVETra
新的貢獻者二世

@Reka,謝謝。我異常轉換數據類型。希望這個問題不會再發生後修複。

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

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

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

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

Baidu
map