我有一個目錄結構基於兩個分區,就像這樣:保存到鑲子分區
People
> surname=Doe
> name=John
> name=Joe
> surname=White
> name=Josh
> name=Julien
我讀拼花文件的信息只有所有呢,因此我直接指定姓= Doe的作爲我的DataFrame的輸出目錄。現在的問題是我試圖在編寫時添加partitionBy("name")
的基於名稱的分區。
df.write.partitionBy("name").parquet(outputDir)
(outputDir包含哆目錄的路徑)
這將導致一個錯誤象下面這樣:
Caused by: java.lang.AssertionError: assertion failed: Conflicting partition column names detected:
Partition column name list #0: surname, name
Partition column name list #1: surname
任何提示,該如何解決呢?這可能是因爲在surname目錄中創建了_SUCCESS
文件,該文件給Spark提供了錯誤提示 - 當我刪除_SUCCESS
和_metadata
文件時,Spark能夠無任何問題地讀取所有文件。
因爲沒有人別的貼和我的賞金到期,我接受這個解決方案是目前唯一已知的解決方案。 – Niemand
這適用於Spark 1.6.3'sc._jsc.hadoopConfiguration()。set(「mapreduce.fileoutputcommitter.marksuccessfuljobs」,「false」) sc._jsc.hadoopConfiguration()。set(「parquet.enable.summary -metadata「,」false「)' – Vezir