首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在RDD中扁平化列表?

如何在RDD中扁平化列表?
EN

Stack Overflow用户
提问于 2015-01-30 18:03:50
回答 2查看 17.9K关注 0票数 14

在RDD中扁平化列表是可能的吗?例如convert:

代码语言:javascript
复制
 val xxx: org.apache.spark.rdd.RDD[List[Foo]]

至:

代码语言:javascript
复制
 val yyy: org.apache.spark.rdd.RDD[Foo]

该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-30 18:27:54

代码语言:javascript
复制
val rdd = sc.parallelize(Array(List(1,2,3), List(4,5,6), List(7,8,9), List(10, 11, 12)))
// org.apache.spark.rdd.RDD[List[Int]] = ParallelCollectionRDD ...

val rddi = rdd.flatMap(list => list)
// rddi: org.apache.spark.rdd.RDD[Int] = FlatMappedRDD ...

// which is same as rdd.flatMap(identity)
// identity is a method defined in Predef object.
//    def identity[A](x: A): A

rddi.collect()
// res2: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
票数 18
EN

Stack Overflow用户

发布于 2015-01-30 18:13:53

你只需要扁平化它,但是因为RDD上没有显式的' flatten‘方法,所以你可以这样做:

代码语言:javascript
复制
rdd.flatMap(identity)
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28233405

复制
相关文章

相似问题

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