jiguansheng 2023-07-28 22:46 采纳率: 70%
浏览 2
已结题

有5亿活跃用户,将其支付数据(uid 消费金额)投放到kafka。给你一台16核32g内存机器要求给出按支付金额的用户排名榜

面试题目:有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循环输出排名榜。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日

悬赏问题

  • ¥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 画图