1. Spark SQL的Java开发包
Spark SQL提供Java的开发包,当前最新版本是2.1.0版本:spark-sql_2.11-2.1.0.jar,可以从下面链接下载:
http://central.maven.org/maven2/org/apache/spark/spark-sql_2.11/2.1.0/spark-sql_2.11-2.1.0.jar
或者通过Maven配置:
* Spark 2.1.0版本需要Java 7或以上,本文使用Java 1.8.0_72版本
2. SparkSession
创建一个基本的SparkSession,只要使用SparkSession.builder(),它是使用所有Spark SQL功能的入口点:
* 必须调用master(String master)方法指定主节点URL,本例使用local[*],表示本机多线程,线程数与服务器核数相同,具体请参考以下链接:
http://spark.apache.org/docs/latest/submitting-applications.html#master-urls
* 如果没有指定主节点URL的话,运行时会遇到以下错误:
Spark 2.0版本开始,SparkSession内置支持Hive的特性,包括使用HiveQL进行写查询,访问Hive的UDFs和从Hive表读取数据,不需要部署一个Hive的环境。
3. 创建DataFrames
使用SparkSession可以通过一个RDD、Hive表或者Spark数据源创建DataFrames,例如以下代码通过读取一个JSON文件创建一个DataFrame,然后调用show()方法显示内容:
Spark SQL提供Java的开发包,当前最新版本是2.1.0版本:spark-sql_2.11-2.1.0.jar,可以从下面链接下载:
http://central.maven.org/maven2/org/apache/spark/spark-sql_2.11/2.1.0/spark-sql_2.11-2.1.0.jar
或者通过Maven配置:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.1.0</version> </dependency>
* Spark 2.1.0版本需要Java 7或以上,本文使用Java 1.8.0_72版本
2. SparkSession
创建一个基本的SparkSession,只要使用SparkSession.builder(),它是使用所有Spark SQL功能的入口点:
import org.apache.spark.sql.SparkSession;
SparkSession spark = SparkSession
.builder()
.appName("Java Spark SQL basic example")
.master("local[*]")
.config("spark.some.config.option", "some-value")
.getOrCreate();
* 必须调用master(String master)方法指定主节点URL,本例使用local[*],表示本机多线程,线程数与服务器核数相同,具体请参考以下链接:
http://spark.apache.org/docs/latest/submitting-applications.html#master-urls
* 如果没有指定主节点URL的话,运行时会遇到以下错误:
17/02/15 14:08:12 ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: A master URL must be set in your configuration
at org.apache.spark.SparkContext.<init>(SparkContext.scala:379)
at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313)
at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
Spark 2.0版本开始,SparkSession内置支持Hive的特性,包括使用HiveQL进行写查询,访问Hive的UDFs和从Hive表读取数据,不需要部署一个Hive的环境。
3. 创建DataFrames
使用SparkSession可以通过一个RDD、Hive表或者Spark数据源创建DataFrames,例如以下代码通过读取一个JSON文件创建一个DataFrame,然后调用show()方法显示内容:
import org.apache.spark.sql.Dataset;
import org.apache.sp