【发布时间】:2016-08-27 20:59:46
【问题描述】:
我有一个键列表对的 rdd,其中给定键的值是一个元素列表,如下所示:
a = [('json1', ['9', 3]), ('json2', ['5', 2])]
从a开始,我想只得到列表的键和第一个元素,如下所示:
b = [('json1', '9'), ('json2', '5')]
我应该使用 pyspark 中的哪些操作来获取它?
【问题讨论】:
我有一个键列表对的 rdd,其中给定键的值是一个元素列表,如下所示:
a = [('json1', ['9', 3]), ('json2', ['5', 2])]
从a开始,我想只得到列表的键和第一个元素,如下所示:
b = [('json1', '9'), ('json2', '5')]
我应该使用 pyspark 中的哪些操作来获取它?
【问题讨论】:
这很简单。你只需要地图操作。
a = sc.parallelize([('json1', ['9', 3]), ('json2', ['5', 2])])
b=a.map(lambda x:(x[0],x[1][0]))
print(b.take(2))
输出
[('json1', '9'), ('json2', '5')]
您可以阅读pyspark docs 了解地图和其他操作。
【讨论】: