在Apache Spark中我需要注意哪些操作和/或方法?我听说你应该小心:
groupByKeycollectAsMap为什么?
还有其他方法吗?
maa*_*asg 11
你可以在Spark中称之为'昂贵'的操作:所有那些需要洗牌(数据重组)都属于这一类.检查ShuffleRDD结果是否存在rdd.toDebugString.
如果你的意思是"小心"为"有可能导致问题",Spark中的某些操作在使用时会引起与内存相关的问题:
groupByKey要求所有值都落在一个密钥下,以适应一个执行程序的内存.这意味着使用低基数键分组的大型数据集可能会导致作业执行崩溃.(想想allTweets.keyBy(_.date.dayOfTheWeek).groupByKey- > bumm)
aggregateByKey或reduceByKey应用映射端缩减.collect实现RDD(强制计算)并将所有数据发送给驱动程序.(想想allTweets.collect- > bumm)
rdd.countrdd.first(如第一个元素)或rdd.take(n)n个元素collect,请使用rdd.filter或rdd.reduce减少其基数 collectAsMap就collect在幕后cartesian:创建一个RDD与另一个RDD的产品,可能会创建一个非常大的RDD. oneKRdd.cartesian(onekRdd).count = 1000000
join组合2个rdds. 一般而言,了解流经Spark作业各阶段的数据量以及每项操作将对其进行的操作将帮助您保持精神上的理智.
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |