【发布时间】:2015-10-21 17:25:48
【问题描述】:
我有一个源文件,它被转换为RDD,这个RDD 后来使用toMap 函数转换为hashmap,但该函数使用collect 非常慢。
我的数据集大约有 100 万条记录。
我的代码:
RDD.collect().toMap.values.toSeq
有没有任何有效的方法可以在不使用 collect 的情况下将 RDD 转换为 HashMap ?
谢谢 斯里
【问题讨论】:
-
如果你有一个 PairRDD,你可以获得的壁橱是一个 rdd.collectAsMap(),它返回一个 Map[K, V] 给主人。
-
@RohanAletty 我知道。我只是不太确定 OP 想要什么。
-
你是如何分区的? 100 万条记录并不是很多,如果它们不是单独巨大的话。只需在一个节点上运行所有内容,甚至可能不使用 Spark。
-
您是否考虑过仅将值映射到 rrd 然后收集它?这可能会稍微快一点
标签: scala apache-spark