2016-05-11 10 views
7
val tvalues: Array[Double] = Array(1.866393526974307, 2.864048126935307, 4.032486069215076, 7.876169953355888, 4.875333799256043, 14.316322626848278) 
val pvalues: Array[Double] = Array(0.064020056478447, 0.004808399479386827, 8.914865448939047E-5, 7.489564524121306E-13, 2.8363794106756046E-6, 0.0) 

मैं मैं निम्नलिखित की तरह इस सरणी से एक DataFrame का निर्माण करने की जरूरत है इसके बाद के संस्करण के रूप में दो सरणियों है,,स्पार्क स्कैला में एकाधिक सरणी से डेटाफ्रेम कैसे बनाएं?

Tvalues    Pvalues 
1.866393526974307  0.064020056478447 
2.864048126935307  0.004808399479386827 
......     ..... 

फिलहाल मैं स्काला में StringBuilder साथ कोशिश कर रहा हूँ। जो उम्मीद के अनुसार नहीं जाता है। कृपया इस पर मेरी मदद करें। उदाहरण

val df = sc.parallelize(tpvalues zip pvalues).toDF("Tvalues","Pvalues") 

के लिए

उत्तर

5

प्रयास करें और इस तरह

scala> df.show 
+------------------+--------------------+ 
|   Tvalues|    Pvalues| 
+------------------+--------------------+ 
| 1.866393526974307| 0.064020056478447| 
| 2.864048126935307|0.004808399479386827| 
| 4.032486069215076|8.914865448939047E-5| 
| 7.876169953355888|7.489564524121306...| 
| 4.875333799256043|2.836379410675604...| 
|14.316322626848278|     0.0| 
+------------------+--------------------+ 

parallelize इस्तेमाल करते हुए हम tuples के एक RDD प्राप्त - पहली सरणी से पहले तत्व, अन्य सरणी से दूसरा तत्व - , जो पंक्तियों के डेटाफ्रेम में परिवर्तित होता है, प्रत्येक ट्यूपल के लिए एक पंक्ति।

अद्यतन

dataframe'ing कई सरणियों (एक ही आकार के साथ), उदाहरण के 4 सरणियों के लिए के लिए,

case class Row(i: Double, j: Double, k: Double, m: Double) 

val xs = Array(arr1, arr2, arr3, arr4).transpose 
val rdd = sc.parallelize(xs).map(ys => Row(ys(0), ys(1), ys(2), ys(3)) 
val df = rdd.toDF("i","j","k","m") 
+0

हाय एल्म पर विचार, मैं यह कैसे की तरह चार सरणियों है लगता है क्या मै वह कर सकता हूं? – Sam

+0

'वैल xs = ऐरे (ए 1, ए 2, ए 3, ए 4)। ट्रांसफर 'और फिर प्रत्येक नेस्टेड सरणी निर्माण केस क्लास के लिए, केस क्लास समानांतर करें और फिर डीडीएफ (...)। – elm

+0

क्षमा करें @ एल्म, मुझे यह नहीं मिल रहा है, क्या आप इसके लिए एक नमूना प्रदान कर सकते हैं। मुझे माफ़ कर दो, मैं स्कैला स्पार्क करने के लिए नया हूँ। 'वैल xs = ऐरे (ए 1, ए 2, ए 3, ए 4)। ट्रांसफर 'एससी। समानांतर (एक्सएस (0) ज़िप एक्सएस (1), एक्सएस (2), एक्सएस (3))। टीडीएफ (" ए "," बी "," सी "," डी ") '। यह वह कोड है जिसकी मैंने कोशिश की – Sam

संबंधित मुद्दे