每个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在driverworker 中都对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

results matching ""

    No results matching ""