我可以在一对RDD中更改密钥吗?
我已经使用sc.textFile
命令从CSV文件(NAME,AGE,NATIONALITY)创建了普通的RDD。
我想创建一个以NATIONALITY作为键和(name,age)值的对RDD。
t1 = rdd.map( lamda x : (X.split(",") [2] , x))
但是t1.keys()
既不显示键也不显示t1.values()
我正在使用python,您可以像在scala中一样帮助我进行创建吗?我们可以选择执行相同的操作。
答案 0 :(得分:0)
您必须使用collect()
和t1.keys().collect()
之类的RDD来打印它们。检查以下内容,我明白了。
>>> rdd= sc.parallelize([['Mike',25,'XXX'],['Sam',45,'YYY'],['Jim',26,'ZZZ']])
>>> rdd.collect()
[['Mike', 25, 'XXX'], ['Sam', 45, 'YYY'], ['Jim', 26, 'ZZZ']]
#Making Nationality as Key, and others as values
>>> t1=rdd.map(lambda x:(x[2],(x[0],x[1])))
>>> t1.collect()
[('XXX', ('Mike', 25)), ('YYY', ('Sam', 45)), ('ZZZ', ('Jim', 26))]
>>> t1.keys().collect()
['XXX', 'YYY', 'ZZZ']
>>> t1.values().collect()
[('Mike', 25), ('Sam', 45), ('Jim', 26)]