使用并行化创建键/值对 RDD?

Posted

技术标签:

【中文标题】使用并行化创建键/值对 RDD?【英文标题】:using parallelize to create a key/value pair RDD? 【发布时间】:2015-07-15 21:43:29 【问题描述】:

spark API docs 为使用并行化创建 RDD 提供以下定义:

并行化(c,numSlices=None)

分发本地 Python 集合以形成 RDD。使用 xrange 是 如果输入表示性能范围,则建议使用。

>>> sc.parallelize([0, 2, 3, 4, 6], 5).glom().collect()
[[0], [2], [3], [4], [6]]
>>> sc.parallelize(xrange(0, 6, 2), 5).glom().collect()
[[], [0], [], [2], [4]]

我想创建一个键/值对 RDD,如何使用并行化来做到这一点?示例输出 RDD:

key    |  value
-------+-------
panda  |  0
pink   |  3
pirate |  3
panda  |  1
pink   |  4

【问题讨论】:

【参考方案1】:
sc.parallelize([("panda", 0), ("pink", 3)])

【讨论】:

我应该意识到它只是一个元组数组!无论如何,谢谢! 没问题!它也可以是来自两个元素的列表,元组看起来更自然。以sc.parallelize([["panda", 0], ["pink", 3]]).countByKey() 为例。【参考方案2】:

sc.parallelize(Seq(("panda", 0), ("pink", 3)))

【讨论】:

以上是关于使用并行化创建键/值对 RDD?的主要内容,如果未能解决你的问题,请参考以下文章

02创建RDD(集合本地文件HDFS文件)

弹性分布式数据集(RDD)

spark习题

Spark学习笔记3:键值对操作

Spark基础

5.2 键值对RDD