处理键-值对
尽管Spark的大部操作支持包含所有对象类型的RDDs,但是还有一些操作只支持键-值对的的RDDs.最常见的是类似"洗牌"的操作,比如以键值来分组或聚合所有的元素。
在Scala里,这些操作对包含2元组的RDD是自动可用的。(Scala语言内置的元组,通过(a,b)这样的形式创建)。对键-值对可用的操作在PairRDDFunctions类里,将自动包含在含有2元组的RDD里。
比如,下面的代码使用在键-值对上使用reduceByKey操作来计算文件中同一行出现的次数。
val lines = sc.textFile("data.txt")
val pairs = lines
本文介绍了Spark中键值对的处理,重点讲解了reduceByKey操作和shuffle过程,包括shuffle的原理、挑战及如何优化。此外,还探讨了RDD的持久化机制,提供了一些建议来选择合适的存储级别,并阐述了如何手动删除缓存的RDD。
订阅专栏 解锁全文
1972

被折叠的 条评论
为什么被折叠?



