Spark 2.0介绍:SparkSession创建和使用相关API
来源:互联网 发布:淘宝直通车测图教程 编辑:程序博客网 时间:2024/06/14 12:47
SparkSession —— Spark的一个全新的切入点
在Spark的早期版本,SparkContext是进入Spark的切入点。我们都知道RDD是Spark中重要的API,然而它的创建和操作得使用SparkContext提供的API;对于RDD之外的其他东西,我们需要使用其他的Context。比如对于流处理来说,我们得使用StreamingContext;对于SQL得使用SQLContext;而对于Hive得使用HiveContext。然而Dataset和DataFrame提供的API逐渐成为新的标准API,我们需要一个切入点来构建它们,所以在Spark 2.0中我们引入一个新的切入点(Entry Point):SparkSession。
SparkSession实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了SparkContext,所以计算实际上是由SparkContext完成的。
创建SparkSession
SparkSession的设计遵循了工厂设计模式(Factory Design Pattern),下面代码片段介绍如何创建SparkSession:
val sparkSession = SparkSession.builder. master("local") .appName("SparkSession Example") .getOrCreate()
上面代码类似于创建一个SparkContext,master设置为local,然后创建一个SQLContext封装它。如果你想创建HiveContext,可以使用下面的方法来创建SparkSession,以使得它支持Hive:
val sparkSession = SparkSession.builder. master("local") .appName("SparkSession Example") .enableHiveSupport() .getOrCreate()
enableHiveSupport函数的调用使得SparkSession支持Hive,类似于HiveContext。
使用SparkSession读取数据
创建完SparkSession之后,我们就可以使用它来读取数据,下面代码片段是使用SparkSession来csv文件中读取数据:
val df = sparkSession.read.option("header", "true"). csv("src/main/resources/sales.csv")
上面的代码非常像使用SQLContext来读取数据,我们现在可以使用SparkSession来替代之前使用SQLContext编写的代码。下面是完整的代码片段:
import org.apache.spark.sql.SparkSession/** * SparkSession Example */object SparkSessionExample { def main(args: Array[String]) { val sparkSession = SparkSession.builder. master("local") .appName("SparkSession Example") .getOrCreate() val df = sparkSession.read.option("header", "true") .csv("src/main/reaources/sales.csv") df.show() }}
Spark 2.0现在还支持SQLContext和HiveContext吗?
SQLContext和HiveContext相关的API在Spark 2.0还是可以使用的。不过既然有SparkSession了,所以大家还是尽量在Spark 2.0中使用SparkSession。
- Spark 2.0介绍:SparkSession创建和使用相关API
- Spark 2.0介绍:SparkSession创建和使用相关API
- 使用SparkSession相关问题
- Spark 2.0的SparkSession详解
- Spark 2.0系列之SparkSession详解
- Spark 2.0系列之SparkSession详解
- Spark 2.0系列之SparkSession详解
- Spark 2.0系列之SparkSession详解
- spark学习-55-源代码:SparkSession的的创建
- Spark 2.0介绍:Dataset介绍和使用
- Spark 2.0介绍:Dataset介绍和使用
- Spark之SparkSession
- Spark学习之SparkSession
- How to use SparkSession in Apache Spark 2.0
- spark 2.0 踩过的SparkSession的坑
- SparkSession简单介绍
- SparkSession简单介绍
- Spark Dataset介绍和使用
- 不昏
- Oracle索引或这类索引的分区处于不可用状态 查询
- git 443连接错误的解决方法
- 剑指offer-面试题31-连续子数组的最大和
- maven的概念之功能介绍(第一章)
- Spark 2.0介绍:SparkSession创建和使用相关API
- 如何让孩子爱上设计模式 —— 7.适配器模式(Adapter Pattern)
- Atitit gui界面ui技术发展史与未来趋势
- 第一次写博客
- 使用数据库实现web留言本
- hive大数据倾斜总结
- 散列入门(1)----PAT-b1029. 旧键盘(20)
- 7.6
- Atitit nodejs5 nodejs6 nodejs 7.2.1 新特性attialx总结