2017-05-05 46 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

文件我用下面的命令。

我认为你的数据分区可能存在一些问题。有些分区可能是空的。你写的命令很好。