/ / डेटाफ्रेम के प्रत्येक कॉलम इंडेक्स को हार्डकोड किए बिना सीधे डेटाफ़्रेम से LablePoint कैसे बनाएं? - स्केला, अपाचे-स्पार्क, स्पार्क-डेटाफ्रेम, अपाचे-स्पार्क-मॉलिब

डेटाफ्रेम से प्रत्येक कॉलम इंडेक्स को हार्डकोड किए बिना सीधे डेटाफ्रेम से LablePoint कैसे बनाएं? - स्कैला, अपाचे-स्पार्क, स्पार्क-डेटाफ्रेम, अपाचे-स्पार्क-मेलिब

मेरे पास दशमलव डेटा प्रकार के साथ 100 कॉलम के साथ डेटाफ्रेम (इनपुटडीएफ) है। मैं डेटाफ़्रेम (इनपुटडीएफ) का उपयोग करके लेबलबोन बनाना चाहता हूं।

मैं डेटाफ़्रेम के प्रत्येक कॉलम इंडेक्स को हार्डकोड करके LablePoint बनाने में सक्षम हूं, जो कि इष्टतम समाधान नहीं है।

val outputLabelPoint = inputDF.map(x => new LabeledPoint(0.0, Vectors.dense(x.getAs[Double](0),x.getAs[Double](1),x.getAs[Double](2),x.getAs[Double](3), ...))

डेटाफ्रेम के प्रत्येक कॉलम इंडेक्स को हार्डकोड किए बिना सीधे DataFrame से LablePoint कैसे बनाएं?

सहायता के लिए बहुत आभार होगा।

उत्तर:

जवाब के लिए 0 № 1

VectorAssembler वह ट्रांसफार्मर हो सकता है जिसे आप ढूंढना चाहते हैं।

VectorAssembler एक ट्रांसफार्मर है जो किसी एकल वेक्टर कॉलम में कॉलम की दी गई सूची को जोड़ता है।

आईडी | घंटा | मोबाइल | userFeatures | क्लिक किए गए
---- | ------ | -------- | ------------------ | ---------
0 | 18 | 1.0 | [0.0, 10.0, 0.5] | 1.0

बाद

आईडी | घंटा | मोबाइल | userFeatures | क्लिक किया | विशेषताएं
---- | ------ | -------- | ------------------ | --------- | -----------------------------
0 | 18 | 1.0 | [0.0, 10.0, 0.5] | 1.0 | [18.0, 1.0, 0.0, 10.0, 0.5]

मैं असमंजस में हूं कि दोनों तालिकाओं को सही ढंग से प्रदर्शित क्यों नहीं किया जा सकता है।

में उदाहरण के लिए देखें स्पार्क डॉक अधिक जानकारी के लिए।

यदि आप अधिक सहायता चाहते हैं, तो कृपया अपने कॉलम नामों का वर्णन करें और वे कैसे उत्पन्न होते हैं।