Python 使用pyspark创建自动增量键值
我有Python 使用pyspark创建自动增量键值,python,hadoop,apache-spark,pyspark,Python,Hadoop,Apache Spark,Pyspark,我有rdd,列表如下: ['a','b','c'] 如何使用键值创建新的rdd,如: {0:'a', 1:'b', 2:'c'} 这很容易: >>> data = ['a', 'b', 'c'] >>> distData = sc.parallelize(data) >>> distData.collect() ['a', 'b', 'c'] >>> distData = distData.zipWithIndex()
rdd
,列表如下:
['a','b','c']
如何使用键值创建新的rdd
,如:
{0:'a', 1:'b', 2:'c'}
这很容易:
>>> data = ['a', 'b', 'c']
>>> distData = sc.parallelize(data)
>>> distData.collect()
['a', 'b', 'c']
>>> distData = distData.zipWithIndex()
>>> distData.collect()
[('a', 0), ('b', 1), ('c', 2)]
>>> distData = distData.map(lambda (x, y): (y,x))
[(0, 'a'), (1, 'b'), (2, 'c')]
如果要将索引作为键,则需要映射以交换键值。这非常简单:
>>> data = ['a', 'b', 'c']
>>> distData = sc.parallelize(data)
>>> distData.collect()
['a', 'b', 'c']
>>> distData = distData.zipWithIndex()
>>> distData.collect()
[('a', 0), ('b', 1), ('c', 2)]
>>> distData = distData.map(lambda (x, y): (y,x))
[(0, 'a'), (1, 'b'), (2, 'c')]
如果希望索引作为键,则需要映射以交换键值。您可以使用for循环轻松生成它。
lis = ['a','b','c']
dic = {}
for x in range(len(lis)):
dic[x] = lis[x]
print dic
在这段代码中,我们将列表中的每个项目添加到字典中,列表的索引值作为键值。输出:
{0: 'a', 1: 'b', 2: 'c'}
您可以使用for循环轻松生成它。
lis = ['a','b','c']
dic = {}
for x in range(len(lis)):
dic[x] = lis[x]
print dic
在这段代码中,我们将列表中的每个项目添加到字典中,列表的索引值作为键值。输出:
{0: 'a', 1: 'b', 2: 'c'}
你想要的只是从这个列表中获得
{0:'a',1:'b',2:'c'}
?我投票把这个问题作为离题题来结束,因为它的质量很低,而且根本没有表现出任何努力。你想要的只是获得{0:'a',1:'b',2:'c'}
从该列表中?我投票将此问题作为离题题结束,因为它的质量非常低,而且根本没有任何效果。谢谢你,但我想使用pyspark。谢谢你,但我想使用pyspark。