3000门徒内部训练绝密视频(泄密版)第8课:彻底实战详解使用IDE开发Spark程序
彻底实战详解使用IDE开发Spark程序
使用IDE开发Spark分析
使用IDE开发Spark实战
使用IDE开发Spark的Local和Cluster
开发两种选择:IDEA、Eclipse
下载Scala for Eclipse
创建工程WordCount
改变Scala编译版本,右键工程,Properties->Scala Conpiler 划勾,Latest2.10
加入Spark1.6.x的jar文件依赖,下载spark
找到依赖的spark jar文件,并导入到eclipse中的jar依赖中
在src下建立spark工程包
创建Scala入口类
把class变成object并编写main入口方法
package com.tom.spark
/*** 使用Scala开发本地测试的Spark WordCount程序*/
object WordCount {def main(args: Array[String]){/*** 第一步:创建Spark的配置对象,SparkConf,设置Spark程序的运行时的配置信息* 例如通过setMaster来设置程序要连接的spark集群的Master的URL,如果设置* 为local,则代表Spark程序在本地运行,特别适合于机器配置条件非常差的初学者* */val conf = new SparkConf() //创建SparkConf对象conf.setAppName("Wow My First Spark App!") //设置应用程序的名称,在程序运行的监控界面可以看到conf.setMaster("local") //此时程序在本地运行,不需要安装Spark集群/*** 第二步:创建SparkContext对象* SparkContext是Spark程序所有功能的唯一入口,无论采用Scala、Java、Python、R等都必须有一个SparkContext* SparkContext核心作用:初始化Spark应用程序运行所需要的核心组件,包括DAGScheduler、TaskScheduler、SchedulerBackEnd* 同时还会负责Spark程序往Master注册程序等* SparkContext是整个Spark应用程序中最为至关重要的一个对象 */val sc = new SparkContext(conf) //创建SparkContext对象,通过传入SparkConf实例,来定制Spark运行的具体参数和配置信息/*** 第三步:根据具体的数据来源(HDFS、HBase、Local FS、DB、S3等)通过SparkContext来创建RDD* RDD的创建基本有三种方式:根据外部的数据来源(例如HDFS)、根据Scala集合、由其他RDD操作* 数据会被RDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴*/val lines = sc.textFile("F:/channel.txt",1)//读取本地文件并设置为1个Partition/*** 第四步:对初始的RDD进行Transformation级别的处理,例如map、filter等高阶函数等的编程,来进行具体的数据计算* 第4.1步:将每一行的字符串拆分成单个的单词*/val words = lines.flatMap(_.split(" ")) //对每一行的字符串进行单词拆分,并把所有行的拆分结果通过flat合并成一个大的单词集合/*** 第4.2步:在单词拆分的基础上对每个单词实例计数为1,也就是word => (word, 1)*/val pairs = words.map( word => (word, 1))/*** 第4.3步:在单词实例计数为1基础上,统计每个单词在文件中出现的总次数*/val wordCounts = pairs.reduceByKey(_+_) //对相同的key,进行Value的累加(包括Local和Reducer级别同时Reduce)wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + " : " + wordNumberPair._2))sc.stop()}
}
3000门徒内部训练绝密视频(泄密版)第8课:彻底实战详解使用IDE开发Spark程序相关推荐
- 3000门徒内部训练绝密视频(泄密版)第3课:Scala中函数式编程彻底精通及Spark源码阅读
Scala中函数式编程彻底精通及Spark源码阅读 函数可以不依赖于类,函数可以作为函数的参数,函数可以作为函数的返回值 =>表明对左面的参数进行右面的加工 函数赋值给变量需要在函数名后面加空格 ...
- 3000门徒内部训练绝密视频(泄密版)第5课:彻底精通Scala隐式转换和并发编程及Spark源码阅读
彻底精通Scala隐式转换和并发编程及Spark源码阅读 Akka ,Scala内部并发 隐式转换.隐式类.隐式参数 可以手动指定某种类型的对象或类转换成其他类型的对象或类.转换的原因是假设写好接口 ...
- 3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门
大数据最火爆语言Scala光速入门 scala 可以使用java的库 scala 的工厂方法:apply 条件表达式有返回值 数组可以用to ,箭头 <- 最后一行内容的值是整个代码块的返回值 ...
- 3000门徒内部训练绝密视频(泄密版)第2课:Scala面向对象彻底精通及Spark源码阅读
Scala面向对象彻底精通及Spark源码阅读 不用写public class中的public class Person {private var myName = "flink" ...
- 多媒体库SDL以及实时音视频库WebRTC中的多线程问题实战详解
目录 1.概述 2.开源跨平台多媒体库SDL介绍 3.开源音视频实时通信库WebRTC介绍 4.在国产化Linux桌面系统中遇到的SDL多线程问题 5.在给WebRTC新增外部音频插件库时遇到的多线程 ...
- 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.1节简析Android安装文件...
本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.1节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...
- 范里安中级微观经济学(第9版)分析笔记和课后习题答案解析-完整版 范里安《微观经济学:现代观点》(第9版)笔记和课后习题详解!
范里安中级微观经济学(第9版)分析笔记和课后习题答案解析-完整版 摘自硕达学习网 范里安<微观经济学:现代观点>(第9版)笔记和课后习题详解! 最新电子书(题库) 范里安微观经济学现代观 ...
- 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.3节简析Android安装文件...
本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.3节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...
- 数学物理方法pdf_《数学物理方法》周明儒(第2版)补充材料与习题详解
说明: 1.本资源为江苏师范大学 周明儒 教授所编著<数学物理方法>(第二版)配套电子资源: 2.由于Abook限制下载原版PDF,故本人高清截图保存整理为PDF格式供使用该书的同学使用, ...
最新文章
- 查询数据的排序的位置_简单选择排序C++实现
- HDU - 6016 Count the Sheep(二分图+思维)
- 因果推断在阿里文娱用户增长中的应用
- 线程让出实验【RT-Thread学习笔记 4】
- Linux设置ssh免密码登录
- 图片句柄_PC微信逆向:自动保存加密的聊天图片
- 汇编语言第二课作业2.3
- influxDB框架 数据存储 TSM 数据操作等详解
- ubuntu下jmxtrans 安装
- 【大数据部落】基于随机森林、svm、CNN机器学习的风控欺诈识别模型
- 基础知识:BT1120
- react 中加载静态word文档(或加载静态的html文件)
- hanlp 如何快速从分词仅取出人名
- 信诺计算机怎么算一次函数,excel用一次函数进行计算的方法步骤
- 深度优先搜索与广度优先搜索
- 【黄啊码】vue配合PHP实现导出excel进度条显示
- 后端基础PHP——简介及基本函数(上)
- matlab中做出球面和圆柱面,如何用MATLAB在直角坐标系下绘制球面x^2+y^2+z^2=4被柱面(x-1)^2+y^2=1截得的部分曲面.急!谢谢...
- 语音怎么在线转文字,语音转文字的小技巧
- 机器学习最易懂之EM算法详解与python实现