【发布时间】:2021-02-05 21:03:27
【问题描述】:
我有一个包含以下格式数据的大型 csv 文件。
cityId1,name,address,.......,zip
cityId2,name,address,.......,zip
cityId1,name,address,.......,zip
........
cityIdN,name,address,.......,zip
我正在对上述 csv 文件执行以下操作:
-
按cityId作为key,资源列表作为value分组
df1.groupBy($"cityId").agg(collect_list(struct(cols.head, cols.tail: _*)) as "resources")
-
改成jsonRDD
val jsonDataRdd2 = df2.toJSON.rdd
-
遍历每个分区并按密钥上传到 s3
- 由于业务逻辑限制(其他服务如何从 S3 读取),我无法使用 dataframe partitionby write
我的问题:
- spark 分区的默认大小是多少?
- 假设默认分区大小为 X MB,并且 dataFrame 中存在一条大记录,其键具有 Y MB 数据 (Y > X),在这种情况下会发生什么情况?
- 在这种情况下,我是否需要担心在不同分区中拥有相同的密钥?
【问题讨论】:
-
很难跟上。你能显示代码吗?
-
你能接受答案吗?
标签: apache-spark apache-spark-sql