मैं चिंगारी में मिलता है और मैं वेक्टर आयात org.apache.spark.mllib.linalg साथ कोई समस्या है {वेक्टर, वेक्टर}स्पार्क: इनपुट एक वेक्टर
मेरा कार्यक्रम के इनपुट एक पाठ फ़ाइल है। dataset.txt:
[-0.5069793074881704,-2.368342680619545,-3.401324690974588]
[-0.7346396928543871,-2.3407983487917448,-2.793949129209909]
[-0.9174226561793709,-0.8027635530022152,-1.701699021443242]
[0.510736518683609,-2.7304268743276174,-2.418865539558031]
तो, क्या करना है एक कोशिश है: एक RDD (वेक्टर) के उत्पादन में शामिल हैं के साथ
val rdd = sc.textFile("/workingdirectory/dataset")
val data = rdd.map(s => Vectors.dense(s.split(',').map(_.toDouble)))
मैं त्रुटि है, क्योंकि यह पढ़ [०.५१०७३६ 518683609 एक संख्या के रूप में। दूसरी पंक्ति के बिना पाठ फ़ाइल में संग्रहीत वेक्टर को सीधे लोड करने के लिए किसी भी फॉर्म का अस्तित्व है? मैं मानचित्र चरण में "[" कैसे हटा सकता हूं? मैं स्पार्क में वास्तव में नया हूं, क्षमा करें अगर यह एक बहुत ही स्पष्ट सवाल है।
val rdd = sc.textFile("/workingdirectory/dataset")
val data = rdd.map {
s =>
val vect = s.replaceAll("\\[", "").replaceAll("\\]","").split(',').map(_.toDouble)
Vectors.dense(vect)
}
मैं सिर्फ पठनीयता प्रयोजन के लिए लाइन में नक्शा तोड़ दिया गया है:
कैसे के बारे में 'ड्रॉप (1) .dropRight (1) .split (", ") मानचित्र' या 'वैल पी =" - [0-9] + (:। \\ [0-9] +) "r;?। p.findAllIn (रों) .map (_। toDouble) '? – zero323
यही कारण है कि मैंने एक तरफ कहा! :) – eliasah