我有按第二列排序的表(1000000x4)的spark数据帧 我需要得到2个值第二行,第0列和第2行,第3列 我该怎么办?
答案 0 :(得分:4)
如果您只需要价值,那么只需使用DataFrame
的内部RDD
即可。您没有指定语言,因此我将利用此自由向您展示如何使用python2
实现此目的。
df = sqlContext.createDataFrame([("Bonsanto", 20, 2000.00),
("Hayek", 60, 3000.00),
("Mises", 60, 1000.0)],
["name", "age", "balance"])
requiredRows = [0, 2]
data = (df.rdd.zipWithIndex()
.filter(lambda ((name, age, balance), index): index in requiredRows)
.collect())
现在你可以操纵数据列表中的变量了。顺便说一句,我没有删除每个tuple
内的索引,只是为了让您了解其工作原理。
print data
#[(Row(name=u'Bonsanto', age=20, balance=2000.0), 0),
# (Row(name=u'Mises', age=60, balance=1000.0), 2)]