假期学习7

  今天开始做实验四,看上去一头雾水。查阅相关博客资料才明白了RDD是什么东西。

  Spark 对数据的核心抽象—弹性分布式数据集就是RDD,换句话说就是分布式的元素集合。在spark里,对数据的所有操作就是创建 RDD、转化已有 RDD 以及调用 RDD 操作进行求值。创建RDD有两种方法:读取一个外部数据集,在驱动器程序里分发驱动器程序中的对象集合。RDD 支持两种类型的操作:转化操作和行动操作。转化操作会由一个 RDD 生成一个新的 RDD,行动操作会对 RDD 计算出一个结果,并把结果返回到驱动器程序中,或把结果存储到外部存储系统中。

  在了解了相关信息之后,对实验的方法也有了一定的思路,完成了第一个实验。

  下面是部分代码:

val lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
val par = lines.map(row=>row.split(",")(0)) 
val distinct_par = par.distinct() 
distinct_par.count 
val lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
val par = lines.map(row=>row.split(",")(1)) 
val distinct_par = par.distinct() 
distinct_par.count
val lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
val pare = lines.filter(row=>row.split(",")(0)=="Tom")
pare.foreach(println)
Tom,DataBase,26
Tom,Algorithm,12
Tom,OperatingSystem,16
Tom,Python,40
Tom,Software,60
pare.map(row=>(row.split(",")(0),row.split(",")(2).toInt)).mapValues(x=>(x,1)).reduceByKey((x,y
) => (x._1+y._1,x._2 + y._2)).mapValues(x => (x._1 / x._2)).collect()
//res9: Array[(String, Int)] = Array((Tom,30))
原文地址:https://www.cnblogs.com/Excusezuo/p/12315088.html