2014-09-25 49 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