李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
基于IDEA构建spark开发环境
Leefs
2021-02-21 PM
1297℃
0条
# 04.基于IDEA构建spark开发环境 ### 前言 开发环境: 1.IDEA版本2018.3.4 2.JDK版本1.8 3.Scala版本2.12.11 ### 一、IDEA安装Scala插件 (1)点击右下角configuration,选择plugins ![04.基于IDEA构建spark开发环境01.png](https://lilinchao.com/usr/uploads/2021/02/2731171487.png) (2)选择Browse repositories ![04.基于IDEA构建spark开发环境02.png](https://lilinchao.com/usr/uploads/2021/02/2725916677.png) (3)输入Scala后搜索,然后安装,安装需要一些时间 如果通过install自动下载插件失败,可以选择手动下载scala插件,然后通过步骤2中【install plugin from disk】选项,选择手动下载zip包的方式安装插件 ### 二、创建Maven项目 1. 点击File-->New-->Project ![04.基于IDEA构建spark开发环境03.jpg](https://lilinchao.com/usr/uploads/2021/02/3368398750.jpg) 2. Maven --> 选择JDK版本 --> Next ![04.基于IDEA构建spark开发环境04.jpg](https://lilinchao.com/usr/uploads/2021/02/2435494925.jpg) 3. 命名GroupId和ArtifactId + GroupId是项目所属组织的唯一标识 + ArtifactId是项目的唯一标识,也是项目根目录的名称 ![04.基于IDEA构建spark开发环境05.jpg](https://lilinchao.com/usr/uploads/2021/02/3268212024.jpg) 4. 选择Project location路径 --> 点击Finish ![04.基于IDEA构建spark开发环境06.jpg](https://lilinchao.com/usr/uploads/2021/02/150099775.jpg) 完成后的目录结构 ![04.基于IDEA构建spark开发环境07.jpg](https://lilinchao.com/usr/uploads/2021/02/1801518928.jpg) ### 三、新增scala文件夹 此时源码src目录下面默认是有java文件夹,可以看到颜色还不一样,表示是源码文件,我们需要新增scala文件夹,并且变成源码文件夹。 1. 打开项目设置 File -> Project Structure 或者快捷键Ctrl +Alt +Shift + S ![04.基于IDEA构建spark开发环境08.jpg](https://lilinchao.com/usr/uploads/2021/02/1555347908.jpg) 2.选择【Modules】--> 【Sources】--> 【Resources】--> 【main】--> 右击显示【New Folder】 ![04.基于IDEA构建spark开发环境09.jpg](https://lilinchao.com/usr/uploads/2021/02/1354727668.jpg) 3.输入框填写scala --> 点击OK ![04.基于IDEA构建spark开发环境10.jpg](https://lilinchao.com/usr/uploads/2021/02/2967472705.jpg) 4. 此时新建的文件夹还不是源码文件夹,需要选择scala文件夹,点击Source,变成源码文件夹 ![04.基于IDEA构建spark开发环境11.jpg](https://lilinchao.com/usr/uploads/2021/02/872391597.jpg) 点击OK ### 四、新建Scala class文件 1. 此时在项目中新建源码文件,会显示如下 ![04.基于IDEA构建spark开发环境12.jpg](https://lilinchao.com/usr/uploads/2021/02/2779530000.jpg) 会发现列表中没有Scala Class,因为项目中还没有添加Scala SDK 2. 在Project Structure(或者快捷键Ctrl +Alt +Shift + S)中选择Libraries,点击“+”,新增Scala SDK ![04.基于IDEA构建spark开发环境13.jpg](https://lilinchao.com/usr/uploads/2021/02/1304875370.jpg) 3. 点击Browse选择自己本地Scala安装路径 ![04.基于IDEA构建spark开发环境14.jpg](https://lilinchao.com/usr/uploads/2021/02/862652022.jpg) ![04.基于IDEA构建spark开发环境16.jpg](https://lilinchao.com/usr/uploads/2021/02/4002473535.jpg) 加载完Scala SDK之后 ![04.基于IDEA构建spark开发环境15.jpg](https://lilinchao.com/usr/uploads/2021/02/3299544468.jpg) 4. 新建scala源码 选中scala --> New --> Scala Class ![04.基于IDEA构建spark开发环境17.jpg](https://lilinchao.com/usr/uploads/2021/02/3477001779.jpg) 5. 填写class名称,Kind选择【Object】,点击OK ![04.基于IDEA构建spark开发环境18.jpg](https://lilinchao.com/usr/uploads/2021/02/2085232865.jpg) ### 五、运行 1. 在刚创建的demo.scala下填充如下内容 ```scala import org.apache.spark.sql.SparkSession import java.io.File object demo { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .master("local[*]") .appName("Spark SparkSession basic example") .getOrCreate() val peopleDFCsv = spark.read.format("csv") .option("sep", "\t") .option("header", "false") .load("D:\\path\\T.csv") peopleDFCsv.printSchema() peopleDFCsv.show(10) // val a = new File("./data").listFiles() // a.foreach(file => println(file.getPath)) } } ``` 效果如下: ![04.基于IDEA构建spark开发环境19.jpg](https://lilinchao.com/usr/uploads/2021/02/4119553513.jpg) 会发现无法识别SparkSession,是因为Spark相关程序依赖没有加入进来。 2.pom.xml中加入如下依赖 ```xml
org.apache.spark
spark-sql_2.12
3.0.0
``` 3.运行demo.scala 等待输出结果 ### 六、运行异常解决 如果代码中没有设置master ```scala val spark = SparkSession .builder() .appName("Spark SQL basic example") .getOrCreate() ``` 会有如下错误 ``` ERROR SparkContext: Error initializing SparkContext. org.apache.spark.SparkException: A master URL must be set in your configuration at org.apache.spark.SparkContext.
(SparkContext.scala:379) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2320) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860) at Demo$.main(Demo.scala:10) at Demo.main(Demo.scala) Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration at org.apache.spark.SparkContext.
(SparkContext.scala:379) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2320) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860) at Demo$.main(Demo.scala:10) at Demo.main(Demo.scala) ``` 有两种解决方案,第一种 ```scala val spark = SparkSession .builder() .master("local[*]") // 使用所有线程 .appName("Spark SQL basic example") .getOrCreate() ``` 第二种,在运行参数中设置 ![04.基于IDEA构建spark开发环境21.jpg](https://lilinchao.com/usr/uploads/2021/02/2388837263.jpg) 在VM options中设置-Dspark.master=local ![04.基于IDEA构建spark开发环境20.jpg](https://lilinchao.com/usr/uploads/2021/02/4221454297.jpg)
标签:
Spark
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/1192.html
上一篇
windows10 scala安装
下一篇
Spark入门程序WordCount
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Hadoop
Golang
Hbase
队列
JavaScript
Kibana
SpringCloud
持有对象
Nacos
MyBatis-Plus
机器学习
Flink
数学
Livy
Azkaban
JavaWeb
Jenkins
随笔
Docker
VUE
Elastisearch
正则表达式
nginx
Ubuntu
Java编程思想
算法
SpringCloudAlibaba
稀疏数组
序列化和反序列化
BurpSuite
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞