2014-09-25 48 views
1

我有情況下,我必須字符串與RDD出(字符串)聯合字符串在火花/斯卡拉

字符串結合1

date= 

字符串2(字符串的RDD)

20140101 
20140102 
20140103 
.... 

輸出

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

請幫我牛逼Ø實現這個結果

回答

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」)。reduce(_ +「,」+ _)' – Federico 2016-12-13 13:50:04

+1

@Federico絕對正確。我已將您的反饋納入答案中。謝謝! – maasg 2016-12-13 14:06:13

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

感謝您的幫助,我需要它作爲一個組合的字符串。所有的元組都應該連接起來。此解決方案不提供連接值。理想情況下,我應該做flatmap來將行轉換爲列(例如) – 2014-09-25 21:36:44

+0

對不起,我不認爲我理解。你能否詳細說明一下? – Dani 2014-09-26 09:39:19

+0

嗨,我得到不同日期的RDD [字符串],我有一個字符串變量val foo =「date =」。我需要連接輸出和輸出應該是一個字符串,即日期= 20140901,日期= 20140921,日期= 20140929 ...逗號分隔。 – 2014-09-26 09:46:36