pyspark实验 | 您所在的位置:网站首页 › qq的用户量有多少 › pyspark实验 |
(1)该系一共多少名学生。 line=sc.textFile("file:///opt/") rdd=line.map(lambda x:x.split(",")).map(lambda x:x[0]) sum=rdd.distinct() sum.count()(2)该系共开设多少门课程 line=sc.textFile("file:///opt/") rdd=line.map(lambda x:x.split(",")).map(lambda x:x[1]) sum=rdd.distinct() sum.count()(3)Tom同学的总成绩平均分是多少。 #导入 line=sc.textFile("file:///opt/") rdd2=line.map(lambda x:x.split(",")).filter(lambda x:x[0]=="Tom") rdd2.foreach(print)若出现如下错误 则加上 from __future__ import print_function #统计 sc=rdd2.map(lambda x:int(x[2])) sum=rdd2.count() nums=sc.reduce(lambda x,y:x+y) avgs=nums/sum print(avgs)(4)每名同学的选修的课程门数。 line=sc.textFile("file:///opt/") rdd3=line.map(lambda x:x.split(",")).map(lambda x:(x[0],1)) sums2=rdd3.reduceByKey(lambda x,y:x+y) sums2.foreach(print)(5)该系DataBase课程共有多少人选修。 line=sc.textFile("file:///opt/") rdd5=line.map(lambda x:x.split(",")).filter(lambda x:x[1]=="DataBase") rdd5.count()(6)各门课程的平均分是多少。 line=sc.textFile("file:///opt/") rdd6=line.map(lambda x:x.split(",")).map(lambda x:(x[1],(int(x[2]),1))) sum6=rdd6.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1])) avg2=sum6.map(lambda x:(x[0],round(x[1][0]/x[1][1],2))) avg2.foreach(print)(7)使用累加计算共有多少人选修DataBase这门课。 line=sc.textFile("file:///opt/") rdd7=line.map(lambda x:x.split(",")).filter(lambda x:x[1]=="DataBase") sum7=sc.accumulator(0) rdd7.foreach(lambda x:sum7.add(1)) sum7.value去重 #!/user/bin/env python3 from pyspark import SparkConf,SparkContext conf=SparkConf().setMaster("local").setAppName("CPayment") sc=SparkContext(conf=conf) line1=sc.textFile("file:///opt/.../A.txt") line2=sc.textFile("file:///opt/.../B.txt") line3=line1.union(line2) distinct_line3=line3.distinct() res=distinct_line3.sortBy(lambda x:x) res.repartition(1).saveAsTextFile("file:///opt.../result")求平均值 #!/user/bin/env python3 from pyspark import SparkConf,SparkContext conf=SparkConf().setMaster("local").setAppName("AVGPartemnt") sc=SparkContext(conf=conf) line1=sc.textFile("file:///opt../Algorithm.txt") line1=sc.textFile("file:///opt../DataBase.txt") line1=sc.textFile("file:///opt../Python.txt") lines=line1.union(line2).union(line3) database=lines.map(lambda x:x.split(",")).map(lambda x:(x[0],(int(x[1]).1))) #根据key也就是学生姓名合计每门课的成绩,以及选修课的成绩 res=database.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1])) #利用总成绩除以选修的成绩计算平均值,并保留round保留两位小数 result=res.map(lambda x:x[0],round(x[1][0]/x[1][1],2))) result.repartition(1).saveAsTextFile("file:///opt.../avg") |
CopyRight 2018-2019 实验室设备网 版权所有 |