我正在使用一个专有函数,该函数获取NumPy ndarray
向量,并给出另一个与结果相同长度的ndarray
。
使用Spark映射,我可以在输入数据的每一行上运行此函数,但效率不高,因为该函数每次都处理一个元素的向量。 / p>
是否可以在Spark中处理大量数据?例如,在一台机器上具有(大)部分输入数据,而另一台机器上具有另一部分数据,我可以一次将每台机器上可用的所有行作为ndarray
馈入我的函数中有效的计算?
答案 0 :(得分:1)
不清楚您需要执行什么类型的计算。
mapPartitions
可以处理每个更大的块,但是在该块内部,您仍将使用map
或其他操作来转换数据。
注意:但是,如果将Spark与Numpy进行比较,则将在SparkSQL中使用DataFrame操作,并且所有数据都将在服务器之间透明地混洗。
如果有两个DataFrame,则可能在执行任何操作之前先将它们加入。
在幕后,无法避免查看每个元素,无论是聚合,转换还是以其他方式收集回本地集合。