2016-09-28 3 views
0

Как преобразовать dataframe в RDD [String, String]?Как преобразовать dataframe в RDD [String, String]?

У меня есть кадр данных

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

Как мне преобразовать его в RDD [String, String], где первый столбец будет ключ и 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

Будет ли работать даже строка имеет Map Newbie

+0

Символ 'dataframe' имеет лежащий в основе 'RDD [Row]', который работает в качестве фактического владельца данных. Если ваш «dataframe» похож на то, что вы предоставили, каждый «Row» из базового «rdd» будет иметь эти три поля. И если ваш «dataframe» имеет другую структуру, вы должны быть в состоянии соответствующим образом настроить. –

0

Существует DataFrame.toJSON, что возвращает RDD [String], на основе этого метода, вы можете сделать преобразование сами

Смежные вопросы