Pyhton map()函数-返回前10个结果

时间:2019-12-05 08:33:05

标签: pyspark

我有一个数据集,该数据集具有关于足球运动员的不同特征(姓名,年龄,速度,球队等)

现在我想知道前10名最年轻的球员。

我已经使用*m1 = *m1 + *m2; 功能按名称和年龄收集了所有玩家,但是我只想打印前10个结果。

这是我的实际代码:

map()

这是输出:

from pyspark import SparkConf, SparkContext

conf = SparkConf().setMaster("local").setAppName("CustomerExpenditure")
sc = SparkContext(conf = conf)

def age(line):
    fields = line.split(",")

    return(str(fields[0]), str(fields[14]))


file = sc.textFile("file:///Users/carlos/PycharmProjects/NONSQL/Project/FullData.csv")

oldestsPlayers = file.map(age)

topOldestPlayers = oldestsPlayers.map(lambda x: (x[1], x[0])).sortByKey()


results=topOldestPlayers.collect()



for result in results:
        print(result)

1 个答案:

答案 0 :(得分:0)

在使用收集时,先带回所有数据,然后进行过滤。这意味着大量的数据可能会使您的内存崩溃。

results = topOldestPlayers.take(10)

此方法只会带来前十名,而没有一切。 然后,如果您只想打印它们,

for r in results: print(*r, sep=': ')