Список как ключ для PySpark's ReduceByKey
Я пытаюсь вызвать функцию pyspark reduByKey для данных формата(([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...
Кажется, что 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),...]
так что я мог получить доступa
отy[0][0][0]
а также2
отy[0][1]