2016-09-28 144 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 [字符串],基于这种方法,你可以做你自己改造

相关问题