《Spark 2.0技术预览:更容易、更快速、更智能》文章中简单地介绍了Spark 2.0带来的新技术等。Spark 2.0是Apache Spark的下一个主要版本。此版本在架构抽象、API以及平台的类库方面带来了很大的变化,为该框架明年的发展方向奠定了方向,所以了解Spark 2.0的一些特性对我们能够使用它有着非常重要的作用。本博客将对Spark 2.0进行一序列的介绍(参见Spark 2.0分类),欢迎关注。
val sparkSession = SparkSession.builder.
master("local")
.appName("spark session example")
.getOrCreate()
上面代码类似于创建一个SparkContext,master设置为local,然后创建了一个SQLContext封装它。如果你想创建hiveContext,可以使用下面的方法来创建SparkSession,以使得它支持Hive:
val sparkSession = SparkSession.builder.
master("local")
.appName("spark session example")
.enableHiveSupport()
.getOrCreate()
enableHiveSupport 函数的调用使得SparkSession支持hive,类似于HiveContext。
val df = sparkSession.read.option("header","true").
csv("src/main/resources/sales.csv")
上面代码非常像使用SQLContext来读取数据,我们现在可以使用SparkSession来替代之前使用SQLContext编写的代码。下面是完整的代码片段:
package com.iteblog
import org.apache.spark.sql.SparkSession
/**
* Spark Session example
*
*/
object SparkSessionExample {
def main(args: Array[String]) {
val sparkSession = SparkSession.builder.
master("local")
.appName("spark session example")
.getOrCreate()
val df = sparkSession.read.option("header","true").csv("src/main/resources/sales.csv")
df.show()
}
}