【发布时间】:2015-10-02 22:47:02
【问题描述】:
我正在尝试对(([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ... 格式的数据调用pyspark 的reduceByKey 函数
似乎 pyspark 不会接受一个数组作为普通键中的键,通过简单地应用 .reduceByKey(add) 来减少值。
我已经尝试通过.map((x,y): (str(x),y))首先将数组转换为字符串,但这不起作用,因为将字符串后处理回数组太慢了。
有没有办法让 pyspark 使用数组作为键或使用其他函数快速将字符串转换回数组?
这是相关的错误代码
File "/home/jan/Documents/spark-1.4.0/python/lib/pyspark.zip/pyspark/shuffle.py", line 268, in mergeValues
d[k] = comb(d[k], v) if k in d else creator(v)
TypeError: unhashable type: 'list'
enter code here
总结:
输入:x =[([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...]
期望的输出:y =[([a,b,c], 2), ([a,d,b,e], 1),...]
这样我就可以通过y[0][0][0] 和2 通过y[0][1] 访问a
【问题讨论】:
标签: python apache-spark rdd pyspark