【问题标题】:concat two array[row] element in map连接地图中的两个数组 [行] 元素
【发布时间】:2019-03-03 22:11:56
【问题描述】:

我有 Array[Row] 我正在使用案例类来映射它以获取 RDD

case class MyClass(string,long)


  sparkSession.sparkContext.
    parallelize(row.map(r1 => 
   MyClass(r1.getString(0).concat(r1.getString(1)),
   r1.getLong(2))))

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

输入数组 row = ["string1","string2",someLongnum]

预期输出 RDD 与 case class= ["string1-string2",someLongnum]

【问题讨论】:

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


    【解决方案1】:

    你可以试试这个:

    输入:

    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)    
    

    【讨论】:

      猜你喜欢
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多