2014-09-25 2 views
1

меня есть случай, когда я должен объединить строку с RDD из (String)Зерноуборочных строки в Спарке/Scala

Строки 1

date= 

Строки 2 (РДД Строки)

20140101 
20140102 
20140103 
.... 

Выход в

date=20140101, date=20140102, date=20140103,..... 

Пожалуйста, помогите мне к chieve этот результат

ответ

2

В Спарк вы могли бы сделать, что, как это:

// Some sample data in an RDD 
val data = List("20140101", "20140102", "20140103") 
val rdd = sc.parallelize(data) 

val concatenated = rdd.map(elem => s"date=$elem").reduce(_ + ", " + _) 

Имейте в виду, что reduce это действие. Поэтому результат сокращения должен соответствовать памяти водителя.

+1

Чтобы избежать конечной запятой: 'val concatenated = rdd.map (elem => s "date = $ elem"). уменьшить (_ + "," + _) ' – Federico

+1

@Federico абсолютно правильно. Я включил ваши отзывы в ответ. Благодаря! – maasg

0
string2.map(d => s"$string1=$d").mkString(",") 
+0

Спасибо за вашу помощь, мне нужна его как комбинированная строка. Все кортежи должны быть объединены. это решение не дает конкатенированной стоимости. В идеале я должен сделать flatmap для перевода строк в столбцы (например, например) –

+0

Извините, я не думаю, что понимаю. Не могли бы вы рассказать? – Dani

+0

Привет, я получаю RDD [String] разных дат, и у меня есть переменная String val foo = "date =". Мне нужно объединить оба выхода, а вывод должен быть строкой, то есть date = 20140901, date = 20140921, date = 20140929 ... запятыми. –

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