के रूप में स्किला ऑब्जेक्ट का उपयोग करके कम करें। मैं स्कैला के साथ स्पार्क का उपयोग कर रहा हूं और मेरे पास एक जटिल वस्तु है जिसमें एक जटिल वस्तु है जिसमें कुंजी और एक डबल है। यदि उद्देश्य समान है तो लक्ष्य डबल (आवृत्ति) जोड़ना है।स्कैला ऑब्जेक्ट को कुंजी
case class SimpleCoocurrence(word:String, word_pos:String, cooc:String, cooc_pos:String, distance:Double) extends Ordered[SimpleCoocurrence]{
def compare(that: SimpleCoocurrence) = {
if(this.word.equals(that.word)&&this.word_pos.equals(that.word_pos)
&&this.cooc.equals(that.cooc)&&this.cooc_pos.equals(that.cooc_pos))
0
else
this.toString.compareTo(that.toString)
}
}
अब मुझे लगता है कि जैसे reduceBykey उपयोग करने के लिए कोशिश कर रहा हूँ:
है कि मैं इस प्रकार मेरी वस्तु द्वारा निर्दिष्ट किए गएलेकिन
val coocRDD = sc.parallelize(coocList)
println(coocRDD.count)
coocRDD.map(tup=>tup).reduceByKey(_+_)
println(coocRDD.count)
, परिणाम से पता चलता है कि RDD से पहले और एक lowbykey प्रसंस्करण के बाद तत्वों की एक ही संख्या में शामिल हैं।
मैं tuple2 [SimpleCoocurrence, Double] का उपयोग करके कम से कम कैसे कर सकता हूं? स्पार्ड को मेरी ऑब्जेक्ट्स की तुलना करने के तरीके को बताने का अच्छा तरीका ऑर्डर किया गया है? क्या मुझे केवल tuple2 [स्ट्रिंग, डबल] का उपयोग करना चाहिए?
THX,
https://issues.apache.org/jira/browse/SPARK-10493 – yanghaogn