提取spark数据框中的第二行值

时间:2016-02-13 00:57:32

标签: apache-spark dataframe

我有按第二列排序的表(1000000x4)的spark数据帧 我需要得到2个值第二行,第0列和第2行,第3列 我该怎么办?

1 个答案:

答案 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)]