Apache spark 将RDD[Array[Row]]转换为RDD[Row]

Apache spark 将RDD[Array[Row]]转换为RDD[Row],apache-spark,apache-spark-sql,rdd,Apache Spark,Apache Spark Sql,Rdd,如何将RDD[Array[Row]]转换为RDD[Row] 详情: 我有一个用例,解析函数为一些数据返回类型Array[Row],为一些数据返回类型Row。我将如何将这两者转换为RDD[Row]以供进一步使用 代码示例 private def getRows(rdd: RDD[String], parser: Parser): RDD[Row] = { var processedLines = rdd.map { line => map(p => parser.pr

如何将RDD[Array[Row]]转换为RDD[Row]

详情:

我有一个用例,解析函数为一些数据返回类型Array[Row],为一些数据返回类型Row。我将如何将这两者转换为RDD[Row]以供进一步使用

代码示例

private def getRows(rdd: RDD[String], parser: Parser): RDD[Row] = {

var processedLines = rdd.map { line =>      
  map(p => parser.processBeacon(line) }

val rddOfRowsList = processedLines.map { x =>
  x match {
    case Right(obj) => obj.map { p =>          
      MyRow.getValue(p)
    }//I can use flatmap here
    case Left(obj) =>          
      MyRow.getValue(obj)
  }//Cant use flatmap here
}

 // Here I have to convert rddOfRowsList to RDD[Row]
 //?????
 val rowsRdd =?????
 //


rowsRdd
}


使用
flatMap

rdd.flatMap(identity)

使用
flatMap

rdd.flatMap(identity)

您可以使用flatmap获得新的rdd,然后使用union组合它们。

您可以使用flatmap获得新的rdd,然后使用union来组合它们。

使用flatMap来修饰RDD的内容

使用flatMap来修饰RDD的内容

你能添加一些你正在做的代码以及一些输入和输出示例吗?我遇到了类似的问题。回答这里你能添加一些你正在做的代码以及一些输入和输出的例子吗?我遇到了类似的问题。回答这里虽然这可能是解决问题的一个有价值的提示,但一个好的答案也能说明解决方法。请提供示例代码来说明您的意思。另一方面,考虑将此作为评论来写。虽然这可能是一个有价值的提示来解决这个问题,但一个好的答案也说明了解决方案。请提供示例代码来说明您的意思。另外,考虑将此作为注释添加。在我得到一行的第二种情况下,在我得到一行的第二种情况下,平面图将不工作,平面图将不起作用。