【发布时间】:2019-05-28 21:21:54
【问题描述】:
我的数据框包含如下数据:
channel eventId1 eventId2 eventTs eventTs2 serialNumber someCode
Web-DTB akefTEdZhXt8EqzLKXNt1Wjg akTEdZhXt8EqzLKXNt1Wjg 1545502751154 1545502766731 4 rfs
Web-DTB 3ycLHHrbEkBJ.piYNyI7u55w 3ycLHHEkBJ.piYNyI7u55w 1545502766247 1545502767800 4 njs
Web-DTB 3ycL4rHHEkBJ.piYNyI7u55w 3ycLHHEkBJ.piYNyI7u55w 1545502766247 1545502767800 4 null
我需要将此数据保存到 S3 路径,如下所示:
s3://test/data/ABC/hb/eventTs/[eventTs]/uploadTime_[eventTs2]/*.json.gz
我需要如何从分区中提取数据以写入 S3 路径:(s3 路径是数据帧中存在的 eventTs 和 eventTs2 的函数)
df.write.partitionBy("eventTs","eventTs2").format("json").save("s3://test/data/ABC/hb????")
我想我可以遍历数据框中的每一行,提取路径并保存到 S3,但不想这样做。
有没有办法按 eventTs 和 eventTs2 上的数据帧分组,然后将数据帧保存到完整的 S3 路径?有什么更优化的吗?
【问题讨论】:
标签: scala apache-spark amazon-s3 apache-spark-sql