前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark action 操作列表

Spark action 操作列表

作者头像
用户1558438
发布2018-08-23 17:26:09
5280
发布2018-08-23 17:26:09
举报
文章被收录于专栏:liuchengxuliuchengxu

+以下内容来自 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.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档