2016-09-28 192 views
0

如何將數據框轉換爲RDD [字符串,字符串]?如何將數據框轉換爲RDD [字符串,字符串]?

我有一個數據幀

df : [id : String, coutry :String, title: String] 

如何做我將它轉換爲RDD [字符串,字符串]其中第一列是由剩餘的列將是價值鍵和JSON字符串?

key : id 
value : {coutry: "US", title : "MK"} 

回答

1

你不能有一個RDD[String, String]。 RDD只需要1 type parameter,所以你想要的是RDD[(String, String)]

df.rdd 
    .map(row => { 
    val id = row.getString(0) 
    val country = row.getString(1) 
    val title = row.getString(2) 

    val jsonString = s"{country: $country, title: $title}" 

    (id, jsonString) 
    }) 
+0

將它的工作即使行有地圖 Newbie

+0

一個'dataframe'有一個內在的'RDD [行]'其工作方式的實際數據持有人。如果你的'dataframe'就像你提供的那樣,那麼底層'rdd'的每個'Row'都會有這三個字段。如果你的'dataframe'結構不同,你應該可以相應地進行調整。 –

0

有DataFrame.toJSON返回一個RDD [字符串],基於這種方法,你可以做你自己改造

相關問題