将行转换为pyspark中的列表RDD

时间:2017-05-24 06:18:10

标签: python apache-spark pyspark

我有一份表格

[Row(_1=u'5', _2=u'6')]

我想将其转换为

[(5,6)]

使用PySpark

2 个答案:

答案 0 :(得分:4)

如果您的 [行(_1 = u' 5',_2 = u' 6')] 是您的rdd中的一行:

from pyspark.sql import Row

a = [Row(_1=u'5', _2=u'6')]
rdd = sc.parallelize(a) 
print rdd.take(1)
# >>> [Row(_1=u'5', _2=u'6')]

b = rdd.map(lambda line: tuple([int(x) for x in line]))
print b.take(3)
# >>> [(5, 6)]

答案 1 :(得分:2)

Row是一个元组,所以你只需要:

rdd.map(tuple)

获取RDD[tuple]

rdd.map(list)

获取RDD[list]