pySpark-避免一次处理单行

时间:2018-10-20 19:46:56

标签: apache-spark numpy-ndarray

我正在使用一个专有函数,该函数获取NumPy ndarray向量,并给出另一个与结果相同长度的ndarray

使用Spark映射,我可以在输入数据的每一行上运行此函数,但效率不高,因为该函数每次都处理一个元素的向量。 / p>

是否可以在Spark中处理大量数据?例如,在一台机器上具有(大)部分输入数据,而另一台机器上具有另一部分数据,我可以一次将每台机器上可用的所有行作为ndarray馈入我的函数中有效的计算?

1 个答案:

答案 0 :(得分:1)

不清楚您需要执行什么类型的计算。

mapPartitions可以处理每个更大的块,但是在该块内部,您仍将使用map或其他操作来转换数据。

注意:但是,如果将Spark与Numpy进行比较,则将在SparkSQL中使用DataFrame操作,并且所有数据都将在服务器之间透明地混洗。

如果有两个DataFrame,则可能在执行任何操作之前先将它们加入。

在幕后,无法避免查看每个元素,无论是聚合,转换还是以其他方式收集回本地集合。