PySpark:Statistics.corr很慢

时间:2018-07-20 06:53:01

标签: apache-spark pyspark

我正在Jupyter笔记本中使用PySpark for Spark 2.1.0,托管了我们公司的群集(22 TB,3400 vCores,600个节点)。我通过与美国西海岸的VPN连接连接到了群集。

我想基于PySpark DataFrame对象中的数据生成对图或简单的相关矩阵。为此,我首先从Spark 2.1.0 MLLib documentation开始学习教程代码:

from pyspark.mllib.stat import Statistics

seriesX = sc.parallelize([1.0, 2.0, 3.0, 3.0, 5.0])  # a series
seriesY = sc.parallelize([11.0, 22.0, 33.0, 33.0, 555.0])
print("Correlation is: " + str(Statistics.corr(seriesX, seriesY, method="pearson")))

此代码块在两个5元素向量上执行需要30分钟+/- 5分钟。我打算为DataFrame计算具有超过十亿条记录和十二个预测变量的相关矩阵。推断,这似乎并不可行。

我在做错什么或可以改善吗?它与我的SparkSession设置有关吗?我觉得应该花25分钟以上的时间来计算每个5个元素的2个向量上的pearson相关系数。我的SparkSession设置的详细信息在下面共享:

from pyspark import SparkConf

conf = SparkConf()
conf.setMaster("yarn-client")
conf.set("spark.executor.memory", "4g")
conf.set("spark.yarn.am.memory","1g")
conf.set("spark.executor.instances","50")
conf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")

0 个答案:

没有答案