在地图中连接两个array [row]元素

时间:2019-03-03 22:11:56

标签: string apache-spark concatenation rdd case-class

我有Array [Row] 我正在使用案例类将其映射以获得RDD

values

数组行中有3个字段。 我想用分隔符“-”连接1和2字段... r1.getString(0).concat(r1.getString(1))

  

输入数组row = [“ string1”,“ string2”,someLOngnum]

     

案例类= [“ string1-string2”,someLongnum]的预期输出RDD

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

输入:

val rdd = sc.parallelize(data)
//data: Array[org.apache.spark.sql.Row] = Array([AAA,a,100], [BBB,b,200], [CCC,c,300])


val result = rdd.map(r => myClass(r.getString(0) +'-'+ r.getString(1),r.getLong(2)))
//result: org.apache.spark.rdd.RDD[myClass] = MapPartitionsRDD[15]

输出:

result.collect.foreach(println) 

//myClass(AAA-a,100)
//myClass(BBB-b,200)
//myClass(CCC-c,300)