二、代码对于两个输入文件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
import org.apache.spark.{SparkConf, SparkContext} object distinctTwoFile { def main(args: Array[String]): Unit = { //1、创建SparkConf对象,该对象初始化一些数据,如该scala代码程序的名字,连接到主节点master的url地址 val sparkConf = new SparkConf().setMaster("local").setAppName("WordCount") //2、创建SparkContext对象,该对象时应用程序提交到spark进行计算运行的唯一入口 val sc = new SparkContext(sparkConf) //通过textFile函数获取数据,同时把数据分割为一行一行,每个数据节点存储一定行数的数据,lines-RDD就是代表这些行的的名字 val A = sc.textFile("D://scala-spark-rdd/data/A.txt") val B = sc.textFile("D://scala-spark-rdd/data/B.txt") //使用算子union()可以合并两个相同形式的文件数据 //distinct()函数是去除RDD里面重复的数据 //sortBY()函数是根据第一个参数来排序,第二个参数true代表升序 val C = A.union(B).distinct().sortBy(x => x,true) C.foreach(println) sc.stop() } }三、实验结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)