Spark开发指南

Spark Context

  SparkContext实例与一个Spark集群连接,并提供与Spark交互的接口,提交作业。

  通过SparkContext实例可以创建RDD,广播变量、计数器。

使用SparkConf

  用来配置Spark相关属性

val conf = new SparkConf().setAppName("LogParser")

  注:

  • setAppName 设置Spark应用的名称,在查看时显示。

  • setMaster 设置Spark集群的Master地址,通常不设置在进行运行时由spark-submit工具进行设置。本地调试时可以设置为“local[2]”,其中“[2]”为设置的线程个数。

创建SparkContext

val sc = new SparkContext(conf)

addFile(path:String)与clearFiles

  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)与clearJars

  addJar(path:String)添加在这个SparkContext实例运行的作业所依赖的jar。

  clearJars删除addJar添加的jar。