面试题目:有5亿活跃用户,将其支付数据(uid 消费金额)投放到kafka。给你一台16核32g内存机器要求给出按支付金额的用户排名榜。这个题目有解法吗
3条回答 默认 最新
- A11000100A 2023-07-28 23:28关注
代码不难,难得是要运行多久,代码如下:
对支付金额进行排序并给出用户排名榜,使用分布式计算框架,Apache Spark。以下是代码:
from pyspark import SparkContext # 创建SparkContext对象 sc = SparkContext("local", "payment ranking") # 读取支付数据 data = sc.textFile("path/to/payment/data") # 将数据转化为RDD rdd = data.map(lambda line: (line.split(",")[0], float(line.split(",")[1]))) # 根据支付金额进行排序 rdd_sorted = rdd.sortBy(lambda x: x[1]) # 取出支付金额所有的用户ID top_users = rdd_sorted.take(500000000) # 输出排名榜 for user_id, amount in top_users: print("Rank {}: {} USD".format(amount, user_id))
在这个示例代码中,我们使用SparkContext对象创建一个本地的Spark应用程序,并使用textFile()方法从文件中读取支付数据。然后,我们使用map()方法将每一行数据转化为一个元组,其中第一个元素是用户ID,第二个元素是支付金额。接着,我们使用sortBy()方法对RDD按照支付金额进行排序,并将结果保存在rdd_sorted变量中。最后,我们使用take()方法取出支付金额所有用户ID,并使用for循环输出排名榜。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图