每个Spark应用都包含driver
程序,它会运行main
函数,并在cluster
上执行多种parallel operation。
Spark 2.1.1 使用的是RDD(Resillient Distributed Dataset)。
Scala
Spark 2.1.1默认是基于Scala 2.11构建的,在创建Spark应用时,如果需要Maven依赖
groupId = org.apache.spark
artifactId = spark-core_2.11
version = 2.1.1
如果希望访问HDFS集群,可以添加hadoop-client
groupId = org.apache.hadoop
artifactId = hadoop-client
version = <your-hdfs-version>
在Spark应用程序中导入类
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
Java
Spark 2.1.1需要在Java 7+工作,如果是Java 8,Spark可以使用lambda表达式,相应的Maven依赖
groupId = org.apache.spark
artifactId = spark-core_2.11
version = 2.1.1
如果希望访问HDFS集群
groupId = org.apache.hadoop
artifactId = hadoop-client
version = <your-hdfs-version>
在程序中引入Spark类
import org.apache.spark.api.java.JavaSparkContext
import org.apache.spark.api.java.JavaRDD
import org.apache.spark.SparkConf
Python
Spark 2.1.1支持Python 2.6+或Python 3.4+
运行Spark应用,需要使用bin/spark-submit
,该脚本会加载Spark的Java/Scala类库。
如果希望访问HDFS,需要选择适合HDFS的PySpark。
在程序中引入Spark类
from pyspark import SparkContext, SparkConf
PySpark在driver
和worker
中都对Python版本有要求,默认会说过PATH
的python,但也可以
$ PYSPARK_PYTHON=python3.4 bin/pyspark
$ PYSPARK_PYTHON=/opt/pypy-2.5/bin/pypy bin/spark-submit examples/src/main/python/pi.py