【发布时间】:2017-02-04 03:59:47
【问题描述】:
我是 spark/scala 的新手。
val First: RDD[((Short, String), (Int, Double, Int))]
这是RDD的结构。我想修改这个结构,如下所示:
val First: RDD[(Short, String , Int, Double, Int)]
因为我有另一个结构不同的 RDD,我想联合这两个 RDD。 (在 UNION 操作中结构必须相同)。
请给我建议一个选项。
【问题讨论】:
-
无汗:
First.map { case ((x,y),(z,w)) => (x,y,z,w) } -
@Alec 我试过这个,但由于数据量很大,所以这会降低性能。因为 Map 会一一迭代数据。
-
请给我一些解决方案,我可以在不迭代数据的情况下更改结构
-
其实不会。像
map这样的转换在 Spark 中是惰性执行的。map最终与完成转换链的任何操作同时计算 - 没有中间步骤。无论如何,减速都会在您的集群上并行化,所以如果您的集群甚至无法处理这个问题,它可能无法处理您之后计划做的任何其他事情...... -
@Alec 我的更新答案非常同意你的观点(对吗?:)),所以 Darshan 不要感到困惑,我真的同意 Alec!
标签: scala function apache-spark distributed-computing bigdata