首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python map()函数-返回前10个结果

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

Stack Overflow用户
提问于 2019-12-05 08:33:05
回答 1查看 77关注 0票数 0

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

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

我已经收集了所有的球员的名字和年龄与map()功能,但我只想打印前10个结果。

这是我的实际代码:

代码语言:javascript
复制
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)

这是输出:

代码语言:javascript
复制
('33', 'Nathan Rutjes') 
('33', 'Jeppe Curth') 
('33', 'Ognjen Vukojević') 
('33', 'Marco Padalino') 
('33', 'Brian Murphy') 
('33', 'Adrián Cortés') 
('33', 'Yaír Urbina') 
('33', 'Kim Chi Gon')
('33', 'Jacques Faty')
('33', 'Sander Asevedo')
('33', 'Alan Besseiro')
('33', 'Sandro Couteiro')
('33', 'Murilo Sancha')
('33', 'Mateus Couteira')
('33', 'Peixotacinho')
('33', 'Danisco Fachini')
('33', 'Fabiem Jardim')
('33', 'Carlos Travisso')
('33', 'Maksymilian Rogalski')
('33', 'César Valoyes')
('33', 'Dougie Imrie')
('33', 'Darren Jones')
('33', 'Iacopo La Rocca')
('33', 'Dioh Williams')
('33', 'David Fox')
('33', 'Michael Tonge')
('33', 'Paul Green')
EN

回答 1

Stack Overflow用户

发布于 2019-12-05 10:01:46

当你使用一个收集,你带回所有的数据,然后你过滤。这意味着,有了大量的数据,你的记忆就会崩溃。

代码语言:javascript
复制
results = topOldestPlayers.take(10)

这种方法只会带来前10名,而不是所有的东西。如果你只想打印,

代码语言:javascript
复制
for r in results: print(*r, sep=': ')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59191059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档