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

Spark Basic RDD 操作示例

作者头像
用户1558438
发布2018-08-23 17:34:54
2150
发布2018-08-23 17:34:54
举报
文章被收录于专栏:liuchengxu

Transformation

基本 RDD 的 transformation

假设有一个 RDD ,其中的元素有 {1, 2, 3, 3}:

函数

目的

示例

结果

map()

将函数应用到 RDD 中的每一个元素并以 RDD 的形式返回结果

rdd.map(x => x+1)

{2, 3, 4, 4}

flatMap()

将函数应用到 RDD 中的每一个元素,并以 RDD 的形式返回 iterator 的内容。通常用于提取词语。

rdd.flatMap(x => x.to(3))

{1, 2, 3, 2, 3, 3, 3}

filter()

返回一个 RDD, 该 RDD 中仅包含了能够通过 filter() 函数的元素

rdd.filter(x => x != 1)

{2, 3, 3}

distinct()

去除重复项

rdd.distinct()

{1, 2, 3}

两个 RDD 的 transformation

假设有两个 RDD, 分别包含了 {1, 2, 3} 和 {3, 4, 5}:

函数

目的

示例

结果

union()

并集,生成一个包含了两个 RDD 元素的 RDD

rdd.union(other)

{1, 2, 3, 3, 4, 5}

intersection()

交集,生成 RDD 包含了在两个 RDD 中同时出现的元素

rdd.intersection(other)

{3}

subtract()

移除一个 RDD 中的内容

rdd.subtract(other)

{1, 2}

cartesian()

以另一个 RDD 的 笛卡尔积

rdd.cartesian(other)

{(1, 3), (1, 4), (1, 5), (2, 3), (2, 4)}, ..., (3, 5)

Action

假设有一个 RDD ,其中的元素有 {1, 2, 3, 3}:

函数

目的

示例

结果

collect()

返回 RDD 中的所有元素

rdd.collect()

{1, 2, 3, 3}

count()

RDD 中的元素数目

rdd.count()

4

countByValue()

RDD 中每个元素出现的次数

rdd.countByValue()

{(1, 1), (2, 1), (3, 2)}

take(num)

返回 RDD 中的 num 个元素

rdd.take(2)

{1, 2}

top(num)

返回 RDD 中的前 num 个元素

rdd.top(2)

{3, 3}

takeOrdered(num)(ordering)

基于 ordering 返回 num 个元素

rdd.takeOrdered(2)(myOrdering)

{3, 3}

takeSample(withReplacement, num, [seed])

随机返回 num 个元素

rdd.takeSample(false, 1)

不确定

reduce(func)

并行地组合 RDD 中的元素(比如,sum)

rdd.reduce((x, y) => x + y)

9

fold(zero)(func)

与 reduce() 一样只是需要提供一个 0

rdd.fold(0)((x, y) => x + y)

9

aggregate(zeroValue)(seqop, combop)

与 reduce() 相似,不过用于返回不同类型

rdd.aggregate((0, 0))((x, y) => (x._1 + y, x._2 + 1), (x, y) => (x._1 + y._1, x._2 + y._2))

(9, 4)

foreach(func)

将 func 应用到 RDD 中的每一个元素

rdd.foreach(func)

以上内容参见 <<Learning Spark>>, 其代码示例可在 GitHub 上找到 learning-spark.

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Transformation
    • 基本 RDD 的 transformation
      • 两个 RDD 的 transformation
      • Action
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档