在partitionBy()之后,将数据集/数据帧写入HDFS目录而没有列的名称:Spark 2.1.0

时间:2018-04-21 14:20:53

标签: apache-spark dataset partition-by

我正在使用partitionBy()按一些ID对数据集/数据框进行分区。但是,当文件被写入时,它创建的目录的名称和列的值由“=”符号分隔。

Seq<String> partitionCols = JavaConversions.asScalaBuffer(Arrays.asList("alert_pas_documentid"));
                fnDatasetWithDocumentID.write().mode("overwrite").partitionBy(partitionCols).json("/user/creando/cdx/alert_pas/");

如何避免获取列名和“=”符号。这是创建的示例目录。

/user/creando/cdx/inv_devices/inv_devices_documentid=700001_596970dba94c040001381a71_700001

1 个答案:

答案 0 :(得分:0)

而不是使用编写器重新分区,您可以在编写之前重新分区数据集,即:

Seq<Column> partitionCols = ...
fnDatasetWithDocumentID.repartition(partitionCols).write().mode("overwrite").json("/user/creando/cdx/alert_pas/");