【发布时间】:2018-10-16 06:58:16
【问题描述】:
我有我的 scala spark 作业要作为 parquet 文件写入 s3。到目前为止,它有 60 亿条记录,并且每天都将继续增长。根据用例,我们的 api 将根据 id 查询 parquet。因此,为了使查询结果更快,我正在编写带有 id 分区的镶木地板。但是,我们有 1330360 个唯一 ID,因此在写入时会创建 1330360 个镶木地板文件,因此写入步骤非常慢,写入过去 9 小时并且仍在运行。
output.write.mode("append").partitionBy("id").parquet("s3a://datalake/db/")
无论如何,我可以减少分区数量并仍然使读取查询更快吗?或者任何其他更好的方法来处理这种情况?谢谢。
编辑:- id 是一个带有随机数的整数列。
【问题讨论】:
标签: scala apache-spark amazon-s3 amazon-emr parquet