SparkContext实例与一个Spark集群连接,并提供与Spark交互的接口,提交作业。
通过SparkContext实例可以创建RDD,广播变量、计数器。
用来配置Spark相关属性
val conf = new SparkConf().setAppName("LogParser")
注:
setAppName 设置Spark应用的名称,在查看时显示。
setMaster 设置Spark集群的Master地址,通常不设置在进行运行时由spark-submit工具进行设置。本地调试时可以设置为“local[2]”,其中“[2]”为设置的线程个数。
val sc = new SparkContext(conf)
addFile方法会添加一个本地文件,然后可以通过SparkFiles.get()来获取文件的URI。
addFile把添加的本地文件传送给所有的Worker,这样能够保证在每个Worker上正确访问到文件。另外,Worker会把文件放在临时目录下。因此,比较适合用于文件比较小,计算比较复杂的场景。如果文件比较大,网络传送的消耗时间也会增长。
path:可以是local、hdfs(任何hadoop支持的文件系统)、HTTP、HTTPS、FTP等。local方式时,在windows下使用绝对路径时需要加个“/”,如“d:/spam.data”得写成“/d:/spam.data”或“file:///d:/spam.data”。
通过SparkFiles.get(path:String)获取添加的文件路径。
通过clearFiles来删除addFile添加的文件。
样例:
var path = "/D:/spam.data"
sc.addFile(path)
val rdd = sc.textFile(SparkFiles.get(path));
sc.clearFiles;
addJar(path:String)添加在这个SparkContext实例运行的作业所依赖的jar。
clearJars删除addJar添加的jar。