Spark-RDD使用IDEA-Scala编程练习题:对于两个输入文件A和B,编写spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件c。

一、例题

对于两个输入文件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()
  }
}

三、实验结果

 

 

  • 4
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值