在 spark python 3.5 中使用 lambda 解压缩
zip unpacking with lampda in spark python 3.5
此代码与 python 2.x n Apache spark 中的新 python 3.5 一起工作时的问题如何找到解决此问题的方法执行元组连接。
代码。
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),c),d) 怎么做
您可以替换:
.map(lambda (((a,b),c),d) : (a,b,c,d) ) \
.map(lambda (a,b,c,d) : [a,b,c,d])
和
.map(lambda x (((a,b),c),d) : [x[0][0][0],x[0][0][1], x[0][1], x[1]])
此代码与 python 2.x n Apache spark 中的新 python 3.5 一起工作时的问题如何找到解决此问题的方法执行元组连接。 代码。
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),c),d) 怎么做
您可以替换:
.map(lambda (((a,b),c),d) : (a,b,c,d) ) \
.map(lambda (a,b,c,d) : [a,b,c,d])
和
.map(lambda x (((a,b),c),d) : [x[0][0][0],x[0][0][1], x[0][1], x[1]])