我有一个数据集,该数据集具有关于足球运动员的不同特征(姓名,年龄,速度,球队等)
现在我想知道前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)
答案 0 :(得分:0)
在使用收集时,先带回所有数据,然后进行过滤。这意味着大量的数据可能会使您的内存崩溃。
results = topOldestPlayers.take(10)
此方法只会带来前十名,而没有一切。 然后,如果您只想打印它们,
for r in results: print(*r, sep=': ')