【发布时间】:2020-09-02 17:52:45
【问题描述】:
我正在使用具有 1 个主节点(m5.2x 大)和 4 个核心节点(c5.2xlarge)的 EMR 集群,并在其上运行 PySpark 作业,该作业将连接 5 个事实表,每个 150 列和 100k 行和 5 个小型维度表 10 列,每列少于 100 条记录。当我加入所有这些时,生成的数据框将有 650 列和 420k 记录(大约 1.5 GB 的数据)。我需要将此数据框加载到 redshift 上的一个大事实表中。
加入数据帧只需不到一分钟,但将此数据帧加载到 S3 或 Redshift 大约需要 6 分钟,我认为这相当长。如果此时间正常或仍可调整,需要专家的建议或指导吗?
我尝试加载分区、parquet 文件、加载到 HDFS,然后使用 S3discp 到 s3,然后再到 redshift。所有实施都需要相同的 6 分钟 时间范围。
【问题讨论】:
-
我不是专家,但也许您应该在最后的步骤中调查日志。也许它正在执行一些 map-reduce 操作,或者在写入文件时正在执行 spark 操作。
-
谢谢@Guilherme Ferreira。我深入研究了日志,发现实际加载之前的查询与时俱进。
标签: amazon-web-services amazon-s3 pyspark amazon-redshift amazon-emr