(四) pyspark编程:大数据实验——求TOP值

题目:

  1. TOP值

假设在某个目录下有若干个文本文件里面包含很多行数据,每行数据有4个字段和值构成,不同字段值之间用逗号隔开,四个字段为orderid、userid、payment和productid。要求求出TOP N 个payment值。数据文件为file0.txt。

  1. 上传file0.txt文件到/usr/local/spark/mycode/RDD目录下,并且创建了TopN.p文件

    进入pyspark

  2. #创建SparkConf对象,设置应用程序名称和部署模式

  • # 创建SparkContext对象

  • # 从本地文件系统读取数据

    # 过滤出长度不为0且包含4个逗号的行

    # 提取第三列数据

    # 将第三列数据转换成键值对(key为数字,value为空串)

    # 对数据进行重新分区,分区数为1

    # 按照键降序排序

    # 取出前5个键

    # 打印前5个键

    代码示例

  • >>> from pyspark import SparkConf, SparkContext
    >>> conf = SparkConf().setMaster("local").setAppName("ReadHBase")
    >>> sc = SparkContext(conf = conf)
    >>> lines= sc.textFile("file:///usr/local/spark/mycode/RDD/file0.txt")
    >>> result1 = lines.filter(lambda line:(len(line.strip()) > 0) and (len(line.split(","))== 4))
    >>> result2 = result1.map(lambda x:x.split(",")[2])
    >>> result3 = result2.map(lambda x:(int(x),""))
    >>> result4 = result3.repartition(1)
    >>> result5 = result4.sortByKey(False)
    >>> result6 = result5.map(lambda x:x[0])
    >>> result7 = result6.take(5)
    >>> for a in result7:
    ...     print(a)
    ...
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值