首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将RDD[Array[Row]]转换为RDD[Row]

将RDD[Array[Row]]转换为RDD[Row]
EN

Stack Overflow用户
提问于 2017-08-16 04:46:05
回答 3查看 614关注 0票数 1

如何将RDD[ArrayRow]转换为RDDRow

详细信息:

我有一些用例,我的解析函数对于某些数据返回类型ArrayRow,对于某些数据返回类型Row。如何将这两个文件都转换为RDDRow以供进一步使用?

代码示例

代码语言:javascript
复制
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

}

代码语言:javascript
复制
    def processLine(logMap: Map[String, String]):Either[Map[String, Object], Array[Map[String, Object]]] =  
         {
           //process
         }
EN

回答 3

Stack Overflow用户

发布于 2017-08-16 04:54:08

使用flatMap

代码语言:javascript
复制
rdd.flatMap(identity)
票数 0
EN

Stack Overflow用户

发布于 2017-08-16 15:56:08

您可以使用平面映射来获得新的rdd,然后使用联合来组合它们。

票数 0
EN

Stack Overflow用户

发布于 2017-08-16 16:38:03

使用flatMap扁平化RDD的内容

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45701269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档