当前位置: 代码迷 >> 综合 >> scala spark dataframe 按不同日期写入不同的csv文件
  详细解决方案

scala spark dataframe 按不同日期写入不同的csv文件

热度:12   发布时间:2024-01-28 20:36:05.0

需求:

需要将 spark 最终计算结果 dataframe 按日期写到对应的 csv文件。日期字段 date_ 样例数据如下 :

2020-5-10 23:34:28

2020-12-9 23:34:28

2020-5-1 3:34:28

解决思路:

使用算子 

repartition(partitionExprs: Column*)

具体代码:

1,dataframe 结果增加列 partition_date:

substr(date_,0,instr(date_,' ')) partition_date  // 把日期从 date_ 字段截取出来作为一个新的字段 partition_date

2,基于新增列 partition_date 分区:

dataframe.repartition(new Column("partition_date"))

3,删除新增的列后再写为 csv 文件:

dataframe.repartition(new Column("partition_date")) .drop("partition_date").write.mode("overwrite").option("mapreduce.fileoutputcommitter.marksuccessfuljobs","false") // 不需要 success_ 文件.csv(outputPath) // outputPath 是输出csv的目录
  相关解决方案