मैं प्रारूप के आंकड़ों पर pyspark की reduceByKey फ़ंक्शन को कॉल करने का प्रयास कर रहा हूँ (([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...
PySpark के reduceByKey के लिए एक प्रमुख के रूप में एक सूची
ऐसा लगता है pyspark सामान्य कुंजी में महत्वपूर्ण हैं, बस से मूल्य में कमी के रूप एक सरणी को स्वीकार नहीं करेगा आवेदन करना .reduceByKey (जोड़ें)।
मैंने पहले से ही स्ट्रिंग में सरणी को .map((x,y): (str(x),y))
द्वारा परिवर्तित करने की कोशिश की है, लेकिन यह काम नहीं करता है क्योंकि तारों की परतों को सरणी में वापस प्रोसेस करना बहुत धीमा है।
क्या कोई तरीका है कि मैं एक कुंजी के रूप में सरणी का उपयोग सरणी का उपयोग कर सकता हूं या स्ट्रिंग को वापस सरणी में बदलने के लिए किसी अन्य फ़ंक्शन का उपयोग कर सकता हूं?
यहाँ जुड़े त्रुटि कोड
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][1]
y[0][0][0]
और
2
द्वारा
a
यहां पहुंच सकता है,210
धन्यवाद कि वास्तव में सामान्य –
में स्पार्क की मेरी समझ के साथ वास्तव में बहुत मदद करता है आपका स्वागत है। बीटीडब्ल्यू यह विशेष रूप से स्पार्क विशिष्ट नहीं है। जब आप सादा पायथन 'dicts' या 'sets' का उपयोग करते हैं तो वही बात लागू होती है। – zero323