DT大数据课程第一阶段第8讲高薪笔记和作业@王家林_DT大数据梦工厂
来源:互联网 发布:mac 照片和文稿 编辑:程序博客网 时间:2024/05/24 07:14
第一步:修改依赖的Scala版本为Scala 2.10.x
第二步:加入Spark 1.6.0的jar文件依赖
第三步:找到依赖的Spark Jar文件并导入到Eclipse中的Jar依赖
第四步:在src下建立Spark工程包
第五步:创建Scala入口类
第六步:把class变成object并编写main入口方法
//第一个统计单词程序
1.本地运行代码
package com.dt.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* 使用 Scala开发spark 本地测试程序
* @author macal
*/
object WordCount {
def main( args:Array[ String])
{
//第一步;创建spark的配置对象 sparkconf
val conf = new SparkConf() //创建 sparkconf对象
conf. setAppName( "my first spark") //设置应用程序的名称
conf. setMaster( "local") //设置本地运行
//创建sparkcontext对象, sparkcontext是程序的唯一入口
val sc = new SparkContext( conf)
//根据具体的数据源创建RDD,例如 hadoop 等
val lines = sc. textFile( "D://tools//spark-1.4.1-bin-hadoop2.6//README.md" , 1 )//都区本地文件,设置1个partition
//对初始的RDD进行转换操作
val words = lines. flatMap{ line => line. split( " ")}
val pairs = words. map { word =>( word, 1) }
val wordconuts = pairs. reduceByKey (_+ _)
wordconuts. foreach( wordnumpair => println( wordnumpair ._1 + ":"+ wordnumpair ._2 ))
sc. stop() //
}
}
2.集群模式代码
package com.dt.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* 使用Scala开发spark 本地测试程序
* @author macal
*/
object WordCount_cluster {
def main(args:Array[String])
{
//第一步;创建spark的配置对象sparkconf
val conf = new SparkConf()//创建sparkconf对象
conf.setAppName("my first spark")//设置应用程序的名称
//conf.setMaster("local")//设置本地运行
//conf.setMaster("spark://master:7077")//设置
//创建sparkcontext对象,sparkcontext是程序的唯一入口
val sc = new SparkContext(conf)
//根据具体的数据源创建RDD,例如 hadoop 等
val lines = sc.textFile("/data/putfile.txt")//读取hadoop文件
//对初始的RDD进行转换操作
val words = lines.flatMap{line =>line.split(" ")}
val pairs = words.map { word =>(word,1) }
val wordconuts = pairs.reduceByKey(_+_)
wordconuts.collect.foreach(wordnumpair => println(wordnumpair._1+":"+wordnumpair._2))
sc.stop()//停止
}
}
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* 使用Scala开发spark 本地测试程序
* @author macal
*/
object WordCount_cluster {
def main(args:Array[String])
{
//第一步;创建spark的配置对象sparkconf
val conf = new SparkConf()//创建sparkconf对象
conf.setAppName("my first spark")//设置应用程序的名称
//conf.setMaster("local")//设置本地运行
//conf.setMaster("spark://master:7077")//设置
//创建sparkcontext对象,sparkcontext是程序的唯一入口
val sc = new SparkContext(conf)
//根据具体的数据源创建RDD,例如 hadoop 等
val lines = sc.textFile("/data/putfile.txt")//读取hadoop文件
//对初始的RDD进行转换操作
val words = lines.flatMap{line =>line.split(" ")}
val pairs = words.map { word =>(word,1) }
val wordconuts = pairs.reduceByKey(_+_)
wordconuts.collect.foreach(wordnumpair => println(wordnumpair._1+":"+wordnumpair._2))
sc.stop()//停止
}
}
//及提交命令
./spark-submit --class com.dt.spark.WordCount_cluster --master spark://master:7077 /data/WordCount.jar
第8课作业:在Eclipse中写好广告点击排名的程序并测试
package com.dt.spark
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
/**
* @macalzheng
* 本地测试广告排名
* 新浪微博:macalzheng_DT大数据梦工厂,
*/
object Rank {
def main( args:Array[ String])
{
/**
* 初始化spark环境配置,
*/
val conf = new SparkConf()
conf. setAppName( "Rank Program")
conf. setMaster( "local")
/**
* 初始化 sparkcontext,
*/
val sc = new SparkContext( conf)
//读取数据
val lines = sc. textFile( "D://tools//spark-1.4.1-bin-hadoop2.6//README.md" , 1 )
val words = lines. flatMap{ line => line. split( " ")}
val paris = words. map{ word => ( word, 1)}
val wordcount = paris. reduceByKey (_+ _)
//将key和value翻转一下
val paristemp = wordcount .map {word => (word ._2 ,word ._1 )}
//按照value值排序
val sortrank = paristemp.sortByKey(). collect(). reverse
//再次将key和value翻转过来
val sortranktemp = sortrank. map{ word => ( word. _2, word. _1)}
//输出
sortranktemp. foreach( ranks => println( ranks))
}
}
0 0
- DT大数据课程第一阶段第8讲高薪笔记和作业@王家林_DT大数据梦工厂
- DT大数据课程第一阶段第6讲作业任务@王家林_DT大数据梦工厂
- DT大数据梦工厂大数据第一天课程
- DT大数据梦工厂
- 王家林亲授《DT大数据梦工厂》第84讲:Scala中List和ListBuffer设计实现思考
- DT大数据梦工厂- 第5讲 隐式转换和并发编程
- 王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典 - 第71讲
- DT大数据梦工厂 温故而知新 之12讲
- DT大数据梦工厂 温故而知新 之11讲
- DT大数据梦工厂 温故而知新 之1~4讲
- DT大数据梦工厂 温故而知新 之13讲
- DT大数据梦工厂 温故而知新 之14讲
- DT大数据梦工厂 温故而知新 之15讲
- DT大数据梦工厂 温故而知新 之16讲
- DT大数据梦工厂 温故而知新 之17讲
- DT大数据梦工厂 温故而知新 之18讲
- DT大数据梦工厂 温故而知新 之19讲
- DT大数据梦工厂 温故而知新 之20讲
- 关于git远程仓库的配置
- ByteBuffer.allocate()、BufferUnderflowException Android
- 转载-----jQuery 2.0.3 源码分析core - 整体架构
- 补充UIAlertView的一些知识,包括UIAlertViewStyleLoginAndPasswordInput和代理方法
- Android Studio系列教程--快捷键
- DT大数据课程第一阶段第8讲高薪笔记和作业@王家林_DT大数据梦工厂
- Codeforces Round #338 (Div. 2) C. Running Track (dp)
- sed tutorial -- 部分翻译
- 关于Java中的Class.forName和XX.class
- 博客开始
- bootstrap3兼容IE8的方法
- jxl读写Excel
- Android Developer:内存分析器
- android、ios当前主流推送平台(消息推送)功能、性能对比技术研发文档