赞
踩
(1)编写独立应用程序实现数据去重
对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件C。下面是输入文件和输出文件的一个样例,供参考。
输入文件A的样例如下:
20170101 x
20170102 y
20170103 x
20170104 y
20170105 z
20170106 z
输入文件B的样例如下:
20170101 y
20170102 y
20170103 x
20170104 z
20170105 y
根据输入的文件A和B合并得到的输出文件C的样例如下:
20170101 x
20170101 y
20170102 y
20170103 x
20170104 y
20170104 z
20170105 y
20170105 z
20170106 z
- vim ans1.py
- from pyspark import SparkConf, SparkContext
- conf = SparkConf().setAppName("MergeDeduplicationSort")
- sc = SparkContext(conf=conf)
- inputA = sc.textFile("file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/fileA")
- inputB = sc.textFile("file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/fileB")
- merged = inputA.union(inputB)
- deduplicated = merged.distinct()
- sortedResult = deduplicated.sortBy(lambda x: x)
- sortedResult.repartition(1).saveAsTextFile("file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/fileC")
- sc.stop()
- python3 ans1.py
- cd fileC
- cat part-00000
(2)编写独立应用程序实现求平均值问题
每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写Spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。下面是输入文件和输出文件的一个样例,供参考。
Algorithm成绩:
小明 92
小红 87
小新 82
小丽 90
Database成绩:
小明 95
小红 81
小新 89
小丽 85
Python成绩:
小明 82
小红 83
小新 94
小丽 91
平均成绩如下:
(小红,83.67)
(小新,88.33)
(小明,89.67)
(小丽,88.67)
- vim ans2.py
- from pyspark import SparkConf, SparkContext
- conf = SparkConf().setAppName("CalculateAverageScore")
- sc = SparkContext(conf=conf)
- lines1 = sc.textFile(“file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/Javaweb”)
- lines2 = sc.textFile(“file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/C++”)
- lines3 = sc.textFile(“file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/Spark”)
- lines = lines1.union(lines2).union(lines3)
- data = lines.map(lambda x:x.split(" ")).map(lambda x:(x[0],(int(x[1]),1)))
- res = data.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1]))
- result = res.map(lambda x:(x[0],round(x[1][0]/x[1][1],2)))
- result.repartition(1).saveAsTextFile(“file:///opt/module/spark-3.0.3-bin-without-hadoop/mycode/fileD”)
- sc.stop()
- python3 ans2.py
- cd fileD
- cat part-00000
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。