在 partitionBy() 之后将 Dataset/Dataframe 写入没有列名称的 HDFS 目录:Spark 2.1.0
Writing Dataset/Dataframe to HDFS directory without name of the column after partitionBy() :Spark 2.1.0
我正在使用 partitionBy() 按某个 ID 对 dataset/dataframe 进行分区。但是,当写入文件时,它正在创建目录,其中列的名称和值由“=”符号分隔。
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
您可以在写入之前对数据集进行重新分区,而不是与写入器重新分区,即:
Seq<Column> partitionCols = ...
fnDatasetWithDocumentID.repartition(partitionCols).write().mode("overwrite").json("/user/creando/cdx/alert_pas/");
我正在使用 partitionBy() 按某个 ID 对 dataset/dataframe 进行分区。但是,当写入文件时,它正在创建目录,其中列的名称和值由“=”符号分隔。
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
您可以在写入之前对数据集进行重新分区,而不是与写入器重新分区,即:
Seq<Column> partitionCols = ...
fnDatasetWithDocumentID.repartition(partitionCols).write().mode("overwrite").json("/user/creando/cdx/alert_pas/");