2016-11-24 14 views
5

मैं मानचित्र की RDD है और मैं करने के लिए इसे यहाँ dataframe में बदला चाहते कन्वर्ट करने के लिए RDDकैसे मानचित्र के एक RDD dataframe को

val mapRDD: RDD[Map[String, String]] = sc.parallelize(Seq(
    Map("empid" -> "12", "empName" -> "Rohan", "depId" -> "201"), 
    Map("empid" -> "13", "empName" -> "Ross", "depId" -> "201"), 
    Map("empid" -> "14", "empName" -> "Richard", "depId" -> "401"), 
    Map("empid" -> "15", "empName" -> "Michale", "depId" -> "501"), 
    Map("empid" -> "16", "empName" -> "John", "depId" -> "701"))) 

के इनपुट प्रारूप है वहाँ किसी भी तरह से

तरह dataframe में परिवर्तित करने के लिए है
val df=mapRDD.toDf 

df.show

empid, empName, depId 
12  Rohan  201 
13  Ross  201 
14  Richard  401 
15  Michale  501 
16  John  701 
+2

"मैं RDD के मानचित्र है" - और अधिक सटीक, आपके पास "एक होने के लिए मानचित्र का आरडीडी "। –

उत्तर

10

आप आसानी से यह स्पार्क DataFra में बदल सकते हैं मुझे:

यहाँ एक कोड है कि चाल करना होगा है:

val mapRDD= sc.parallelize(Seq(
    Map("empid" -> "12", "empName" -> "Rohan", "depId" -> "201"), 
    Map("empid" -> "13", "empName" -> "Ross", "depId" -> "201"), 
    Map("empid" -> "14", "empName" -> "Richard", "depId" -> "401"), 
    Map("empid" -> "15", "empName" -> "Michale", "depId" -> "501"), 
    Map("empid" -> "16", "empName" -> "John", "depId" -> "701"))) 

val columns=mapRDD.take(1).flatMap(a=>a.keys) 

val resultantDF=mapRDD.map{value=> 
     val list=value.values.toList 
     (list(0),list(1),list(2)) 
     }.toDF(columns:_*) 

resultantDF.show() 

उत्पादन होता है:

+-----+-------+-----+ 
|empid|empName|depId| 
+-----+-------+-----+ 
| 12| Rohan| 201| 
| 13| Ross| 201| 
| 14|Richard| 401| 
| 15|Michale| 501| 
| 16| John| 701| 
+-----+-------+-----+ 
संबंधित मुद्दे