【发布时间】:2021-08-16 16:15:28
【问题描述】:
我的团队创建了一个更新的 EMR 集群来迁移我们所有的 pyspark 数据管道。
版本更新:
EMR: 5.29.0 -> 6.2.0
Spark: 2.4.4 -> 3.0.1
EMR 硬件更新:
Master: 1 r4.xlarge -> 1 r6g.xlarge
Core: 2 m5.xlarge -> 1 r6g.xlarge
Task: 5 r5.xlarge -> 14 r6g.xlarge
我们没有更改任何不受弃用库影响的代码。
举个例子,运行下面的代码,我们需要的时间从 200 秒到 500 秒,但几乎我们所有的代码都比较慢。
%pyspark
from datetime import date
df_lake = spark.read.format('csv').option("delimiter", "\t").load('s3a://sdite_bucket/data/raw/events_devices/')
df_lake.registerTempTable("snowplow")
maxrun = spark.sql("SELECT MAX(run) AS maxrun FROM snowplow").collect()[0]['maxrun']
我请你帮忙,因为我不知道我应该把重点放在哪里来解决这个速度问题,你有什么建议吗?
- 硬件
- 不推荐使用的代码
- 更新库
- Spark 配置
- S3 连接
到目前为止谢谢。
【问题讨论】:
标签: apache-spark amazon-s3 pyspark amazon-emr