idea中编写好代码,称之为源码。
经过编译后会产生一个target包,里面有一个classes包,里面是存放的编译后的代码,此路径称之为classpath。
并且resource目录底下的文件也会放入classpath中
java要想从classpath中查找文件(配置文件,XML文件)一般使用如下方式(是指从resource文件底下读取配置文件):
// 当前环境的类加载器中,去获取资源来作为流来使用
Thread.currentThread().getContextClassLoader.getResourceAsStream()
// 第二种方式
val wordAndCount: Array[(String, Int)] =sc.textFile(ClassLoader.getSystemResource("words.txt").getPath)
但是idea还支持另一种方式
// TODO 从项目环境中获取
val value: RDD[String] = sc.textFile("input")
在scala代码里不能直接使用spark-shell 里的sc,需要执行以下代码
//TODO 创建spark配置对象
val conf: SparkConf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
// TODO 创建spark环境连接对象
val sc = new SparkContext(conf)
- new SparkContext(conf) 的作用是可以使用spark环境了。但是我们使用哪个环境呢,spark很多环境,如local、yarn、masos。
- 这时就需要第一行代码指定是 “local[*]” 类型的spark环境
- setAppName("wordcount")可以在UI界面看到