проблема в том, что этот код прекрасно работает с python 2.xn. Новый python 3.5 в Apache позволяет найти способ обойти эту проблему и выполнить конкатенацию кортежей.код.
from pyspark.mllib.stat import Statistics
import random
column1 = sc.parallelize(range(100))
column2 = sc.parallelize(range(100,200))
column3 = sc.parallelize(list(reversed(range(100))))
column4 = sc.parallelize(random.sample(range(100),100))
data = column1.zip(column2).zip(column3).zip(column4).map(lambda (((a,b),c),d) : (a,b,c,d) ).map(lambda (a,b,c,d) : [a,b,c,d])
print(Statistics.corr(data))
ошибка
File "<ipython-input-19-e505a170fcab>", line 7
data = column1.zip(column2).zip(column3).zip(column4).map(lambda (((a,b),c),d) : (a,b,c,d) ).map(lambda (a,b,c,d) : [a,b,c,d])
^
SyntaxError: invalid syntax
обычно, когда есть только две части этой работы
rdd.map(lambda x_y: (x_y[1], x_y[0])
, но с таким кортежем, как этот (((a, b)в) г) как это сделать