- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一讲:RDD实战
1)RDD实战
RDD操作类型:
Transformation
Action
controller包括persist(cache是persist的一种情况)
在reduce的时候数据必须满足交换律和结合律
88个文件为什么产生了89个任务,我们在数据reduceByKey传递进来了一个1,那么在第二个阶段就变成了一个任务,原本是88 * 2 = 176个
在进行reduceByKey(_+_,1).saveAsTextFile() :这时候数据过来的时候,之所以知道数据在哪里,
是因为shuffle在管理,上一个阶段的输出,会交给我们的MapOutputTracker,输出在什么地方driver会记录着,DAG让下一个stage运行的时候,
会从driver获取前一个输出在哪里。这里的并行度设置会跟我们的Partition输出有管,跟hadoop一样。可能会有空文件。。。。
2)RDD的Transformation和Action
3)RDD的执行手动绘图
第十二讲:RDD案例(join、cogroup、reduceByKey、groupByKey等)
object Tranformations {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName(Tranformations).setMaster(local)
val sc = new SparkContext(conf)
val rdd = sc.parallelize(1 to 10, 1)
var mapped=rdd.map(_*2)
// mapped.collect.foreach(println)
val filted = mapped.filter(_ %4==0)//mapped.filter(i = i%2 ==0)
filted.collect().foreach(println)
val bigData = Array(scala spark,java hadoop,java tachyon)
val bigDataStrings = sc.parallelize(bigData)
val words = bigDataStrings.flatMap { x = x.split( ) }
words.collect().foreach { x = println(x) }
val groupData = Array(Tuple2(100,spark),Tuple2(90,tachyon),Tuple2(80,kafka),Tuple2(100,hadoop),Tuple2(97,flink))
val padata = sc.parallelize(groupData)
val grouped = padata.groupByKey
grouped.collect().foreach(println)
val lines = sc.textFile(F:\\IMF\\Big_Data_Software\\spark-1.6.0-bin-hadoop2.6\\README.md, 1)
val splited = lines.flatMap { line = line.split( ) }
val mapped1 = splited.map { word =(word,1)}
var couts = mapped1.reduceByKey(_+_).map(pair = (pair._2,pair._1))
// sortByKey是比较耗费性能
val sorted = couts.sortByKey(false,1)
sorted.collect.foreach(pair= println(pair._2,pair._1))
//join:大数据就是解决数据孤岛的问题,让数据进行关联。
val studentName = Array(Tuple2(1,spark),Tuple2(2,tachyon),Tuple2(3,hadoop),Tuple2(4,hbase))
val studentscore = Array(Tuple2(1,100),Tuple2(2,80),Tuple2(3,88))
val names = sc.paralle
文档评论(0)