Sto tentando di chiamare la funzione reduceByKey di pyspark sui dati del formato (([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...
un elenco come chiave per reduceByKey di PySpark
Sembra pyspark non accetterà un array come la chiave nella chiave normale, la riduzione del valore semplicemente applicando .reduceByKey (aggiungi).
Ho già provato prima la conversione della matrice in una stringa, per .map((x,y): (str(x),y))
ma questo non funziona perché la post-elaborazione delle stringhe negli array è troppo lenta.
C'è un modo per far sì che pyspark usi la matrice come chiave o usi un'altra funzione per convertire rapidamente le stringhe in array?
qui è il codice di errore associato
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
SOMMARIO:
ingresso: x =[([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...]
uscita desiderato y =[([a,b,c], 2), ([a,d,b,e], 1),...]
tale che ho potuto accedere a
da y[0][0][0]
e 2
da y[0][1]
grazie che mi aiuta molto con la mia comprensione della scintilla in generale –
Prego. BTW In particolare non è specifico di Spark. La stessa cosa si applica quando usi i "dicts" o 'sets' di Python. – zero323