2017-05-05 57 views
0

嘗試使用寫入方法將數據集/數據幀保存爲hdfs的拼圖。 HDFS中的部分內容是空的,但數據爲空。我使用的Spark版本 - 2.X在火花數據集寫入HDFS期間創建的空白部分

dataset.write.mode("append").partitionBy("empNo").format("parquet").save("hdfs path") 

dataset.write.mode(SaveMode.Overwrite).save("hdfs path") 

請建議

+0

你爲''HiveContext'設置'dynamic.partition'爲'true'和'dynamic.partition.mode'爲'nonstrict'? – philantrovert

+0

No.But這個寫操作是否需要從spark到hdfs? – Abhi

+0

對不起,我看錯了你的問題。我以爲你正在將分區數據寫入配置單元表。 – philantrovert

回答

1

我只是檢查它的數據幀。根據您的查詢將它分成一列。在輸出文件夾中創建了兩個分區文件夾,並使用適當的值。

df.write.mode(SaveMode.Append) 
    .partitionBy("column_name") 
    .format("parquet") 
    .save("hdfs://namenode/output") 

我與星火1.6工作,所以不能與DataSet API檢查:每個文件夾曾與擴展.gz.parquet

文件我用下面的命令。

我認爲你的數據分區可能存在一些問題。有些分區可能是空的。你寫的命令很好。