Spark创建工程
Spark简介
Spark是一个通用的分布式数据处理引擎。
上面这句话听起来或许很抽象,我们一个词一个词的来解释
**通用:**通用指的是Spark可以做很多事情。刚刚我们提到过的,包括机器学习,数据流传输,交互分析,ETL,批处理,图计算等等等等都是Spark可以做到的。甚至可以说,你需要用数据实现的任何事情,你都可以用Spark试试看。
**分布式:**指的是Spark处理数据的能力是建立在许多机器上的,是可以和分布式的存储系统对接的,是可以做横向扩展的(简单点说就是电脑越多,能力越大)
**引擎:**所谓引擎,说的就是Spark自己不会存储数据,它就像实体的机械引擎一样,会将燃料(对Spark来说是数据)转化成使用者需要的那种形式——例如驱动汽车,再例如得到一个需要的目标结论。但无论如何,巧妇难为无米之炊,没数据是万万不行的。
安装scala插件
Idea默认是不能创建Scala工程的。需要安装idea的scala插件
方法一:利用系统在线下载
方法二:方法一失效的情况下,可以在官网下载好后选择手动上传
注意:加载后需要重启Idea才能生效
scala sdk配置
利用maven下载对应的jar包
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.12</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.1</version>
</dependency>
然后加载对应的jar包
在main文件夹内创建一个新的文件夹scala
设置为资源文件夹
加载jar包
spark代码
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local[*]").setAppName("sparkDemo")
val sc = SparkContext.getOrCreate(conf)
println(sc)
var spark:SparkSession = SparkSession.builder().master("local[*]").appName("sparksession").getOrCreate()
println(spark)
//sc读取HDFS上的文件
val wcfile = sc.textFile("hdfs://192.168.XXX.100:9000/sparkfile/hello.txt")
wcfile.collect.foreach(println)
//sc读取本地文件
sc.textFile("file:///opt/soft/hello.txt")
//通过内存创建RDD
// val rdd:RDD[Int] = sc.parallelize(1 to 10,3)
// rdd.collect()foreach(println)
// wordcount
// var wcrdd = sc.parallelize(Array("hello java","hello scala","hello python","java is good"))
// wcrdd.flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_).collect()foreach(println)
}