मैं मान (स्ट्रिंग, स्पारसेवेक्टर) के एक टपल साथ एक RDD है वेक्टर के रूप में एक स्तंभ के साथ एक DataFrame करने के लिए एक स्पारसेवेक्टर कॉलम के साथ एक RDD परिवर्तित और मैं RDD का उपयोग कर एक DataFrame बनाना चाहते हैं। एक (लेबल: स्ट्रिंग, विशेषताएं: वेक्टर) प्राप्त करने के लिए डेटाफ्रेम जो अधिकांश एमएल एल्गोरिदम पुस्तकालयों द्वारा आवश्यक स्कीमा है। मुझे पता है कि यह किया जा सकता है क्योंकि HashingTF मिलीलीटर लाइब्रेरी डेटाफ्रेम के फीचर कॉलम दिए जाने पर वेक्टर आउटपुट करता है।मैं कैसे
temp_df = sqlContext.createDataFrame(temp_rdd, StructType([
StructField("label", DoubleType(), False),
StructField("tokens", ArrayType(StringType()), False)
]))
#assumming there is an RDD (double,array(strings))
hashingTF = HashingTF(numFeatures=COMBINATIONS, inputCol="tokens", outputCol="features")
ndf = hashingTF.transform(temp_df)
ndf.printSchema()
#outputs
#root
#|-- label: double (nullable = false)
#|-- tokens: array (nullable = false)
#| |-- element: string (containsNull = true)
#|-- features: vector (nullable = true)
तो मेरे सवाल का मैं किसी भी तरह का एक RDD (स्ट्रिंग, स्पारसेवेक्टर) यह (स्ट्रिंग, वेक्टर) के एक DataFrame में कन्वर्ट होने कर सकते हैं, है। मैंने सामान्य sqlContext.createDataFrame
के साथ प्रयास किया लेकिन मेरे पास DataType कोई आवश्यकता नहीं है जो मेरे पास आवश्यक है।
df = sqlContext.createDataFrame(rdd,StructType([
StructField("label" , StringType(),True),
StructField("features" , ?Type(),True)
]))
वाह, मैं उम्र के दौरान इसकी तलाश कर रहा था! खुशी की लगभग रोना:,) +1 –
यह काम किया! आपका बहुत बहुत धन्यवाद! क्या आप मुझे बता सकते हैं कि दस्तावेज में कहां है? linalg apache स्पार्क पर किसी भी वेक्टरोरटी को नहीं ढूंढ सकता डॉक्स –
@OangelangelMarquez शायद एक पुल अनुरोध आवश्यक है –