我对PySpark有点陌生,我正在研究如何用PySpark并行化一个简单的程序。我没有找到一个火花转换,可以正确地进行这种治疗。在
我要做的处理是在某种程度上过滤一个非常大的有序向量/列表的一些数值。在得到的矢量中,所有两个连续值之间的差应大于等于X(给定X)。初始向量的第一个值也应该保持不变。在
例如v=(1,3,4,7,8,11),X=3,那么结果是v'=(1,4,7,11)。在
这个程序很容易用“经典”Python实现,但需要的是使用Spark并行化非常快地得到结果。在##### myDF = data from database
last_retained_value = 0 ### all values in myDF are positive
for value in myDF.collect():
current_value = value
if (current_value - last_retained_value >= X): ### X is fixed
last_retained_value = current_value
result.append(str(current_value)) ### result is a list which contains final result**
事先非常感谢。在