【发布时间】:2019-01-03 17:37:31
【问题描述】:
我正在使用具有两个节点的 spark 集群,每个节点都有两个执行程序(每个使用 2 个内核和 6GB 内存)。
这是一个很好的集群配置,可以更快地执行我的 spark 作业吗?
我是 spark 的新手,我正在对 8000 万行数据运行一项工作,其中包括重组繁重的任务,如聚合(计数)和连接操作(数据帧上的自连接)。
瓶颈:
- 在读取数据时显示我的执行程序资源不足。
- 在较小的数据集上,这需要很长时间。
我的方法应该是什么?如何消除瓶颈?
任何建议都将受到高度评价。
query="(Select x,y,z from table) as df"
jdbcDF = spark.read.format("jdbc").option("url", mysqlUrl) \
.option("dbtable", query) \
.option("user", mysqldetails[2]) \
.option("password", mysqldetails[3]) \
.option("numPartitions", "1000")\
.load()
这给了我一个数据框,它在 jdbcDF.rdd.getNumPartitions() 上给了我 1 的值。我在这里遗漏了什么吗?我想我没有并行化我的数据集。
【问题讨论】:
标签: apache-spark pyspark