为了账号安全,请及时绑定邮箱和手机立即绑定

Spark action 操作列表

标签:
Spark

以下内容来自 Spark 官方文档 Actions 小节, 更多内容可查看官方文档. 如有不当之处, 欢迎指正.

行动涵义
reduce(func)使用传入的函数参数 func 对数据集中的元素进行汇聚操作 (两两合并). 该函数应该具有可交换与可结合的性质, 以便于能够正确地进行并行计算.
collect()在 driver program 上将数据集中的元素作为一个数组返回. 这在执行一个 filter 或是其他返回一个足够小的子数据集操作后十分有用.
count()返回数据集中的元素个数
first()返回数据集中的第一个元素 (与 take(1) 类似)
take(n)返回数据集中的前 n 个元素
takeSample(withReplacement, num, [seed])以数组的形式返回数据集中随机采样的 num 个元素.
takeOrdered(n, [ordering])以其自然序或使用自定义的比较器返回 RDD 的前 n 元素
saveAsTextFile(path)将数据集中的元素写入到指定目录下的一个或多个文本文件中, 该目录可以存在于本地文件系统, HDFS 或其他 Hadoop 支持的文件系统. Spark 将会对每个元素调用 toString 将其转换为文件的一行文本.
saveAsSequenceFile(path)(Java and Scala)对于本地文件系统, HDFS 或其他任何 Hadoop 支持的文件系统上的一个指定路径, 将数据集中的元素写为一个 Hadoop SequenceFile. 仅适用于实现了 Hadoop Writable 接口的 kay-value pair 的 RDD. 在 Scala 中, 同样适用于能够被隐式转换成 Writable 的类型上 (Spark 包含了对于 Int, Double, String 等基本类型的转换).
saveAsObjectFile(path)(Java and Scala)使用 Java 序列化将数据集中的元素简单写为格式化数据, 可以通过 SparkContext.objectFile() 进行加载.
countByKey()仅适用于 (K, V) 类型的 RDD. 返回每个 key 的 value 数的一个 hashmap (K, int) pair.
foreach(func)对数据集中的每个元素执行函数 func. 这通常用于更新一个 Accumulator 或与外部存储系统交互时的副作用. 注意: 修改 foreach() 外的非 Accumulator 变量可能导致未定义的行为. 更多细节请查看 Understanding closures.

可以看出 action 的所有操作都是针对数据集中 “元素” (element) 级别的动作, action 的主要内容是 存储计算.  引用 《Learning Spark》 里的说法:

Actions are operations that return a result to the driver program or write it to storage, and kick off a computation, such as count() and first().

再进一步细分的话大概有:

  • 获取元素
    collect(), first(), take(n), takeSample(withReplacement, num, [seed]),  takeOrdered(n, [ordering])

  • 计数元素
    count(), countByKey()

  • 迭代元素
    reduce(func),  foreach(func)

  • 保存元素
    saveAsTextFile(path), saveAsSequenceFile(path), saveAsObjectFile(path)

最后如果你对 transformation  和 action 仍有疑惑的话,书里也教了一个识别的好方法,观察函数的返回类型:如果返回的是  RDD 类型,那么这是 transformation; 如果返回的是其他数据类型,那么这是 action.

If you are ever confused whether a given function is a transformation or an action, you can look at its return type: transformations return RDDs, whereas actions return some other data type.



作者:liuchengxu
链接:https://www.jianshu.com/p/36d58fda1b3a


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消