微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Spark 数据集与分区一起写入 Excel 文件

如何解决将 Spark 数据集与分区一起写入 Excel 文件

我有一个类似于以下结构的数据集:

col_A      col_B        date
  1          5       2021-04-14
  2          7       2021-04-14
  3          5       2021-04-14
  4          9       2021-04-14

我正在尝试在 Spark Java 中使用以下代码将数据集写入 HDFS 中的文件

Dataset<Row> outputDataset; // This is a valid dataset and works flawlessly when written to csv
/*
   some code which sets the outputDataset
*/
outputDataset
    .repartition(1)
    .write()
    .partitionBy("date")
    .format("com.crealytics.spark.excel")
    .option("header","true")
    .save("/saveLoc/sales");

正常工作案例:

当我通过 use .format("csv") 时,上面的代码date=2021-04-14 中传递的路径 /saveLoc/sales 中创建了一个名为 .save()文件夹,这与预期的完全一样。结束文件的完整路径是 /saveLoc/sales/date=2021-04-14/someFileName.csv。此外,列 date 已从文件删除,因为它已分区。

我需要做的:

但是,当我使用 .format("com.crealytics.spark.excel") 时,它只会在文件sales 中创建一个名为 saveLoc 的普通文件,并且不会从最终文件删除 partitioned(date) 列。这是否意味着它没有在“日期​​”列上进行分区?创建的文件的完整路径是 /saveLoc/sales。请注意,它用 file sales 覆盖了 folder “sales”。

此处描述了使用的 Excel 插件https://github.com/crealytics/spark-excel

在excel中编写时如何使其分区?换句话说,我怎样才能让它的行为与在 csv 的情况下完全一样?

使用的版本:

spark-excel: com.crealytics.spark-excel_2.11
scala: org.apache.spark.spark-core_2.11

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。