一、 介紹
- SparkSession是Spark 2.0中引入的新概念,它是Spark SQL、DataFrame和Dataset API的入口點,是Spark編程的統一API,也可看作是讀取數據的統一入口;
- 它將以前的SparkContext、SQLContext和HiveContext組合在一起,使得用戶可以在一個統一的接口下使用Spark的所有功能。
- 需要注意的是,SparkSession是一個重量級的對象,創建和銷毀的代價較高,因此在項目中應該盡可能地重用同一個SparkSession對象。
- 在I/O期間,在構建器中設置的配置項將自動同步到Spark和Hadoop。
二、如何使用
# 在項目中初始化SparkSession,可以按照以下步驟進行:
# 1、導入必要的包:
import org.apache.spark.sql.SparkSession
# 2、創建SparkSession對象:
val spark = SparkSession.builder # 使用builder()方法創建一個SparkSession.Builder對象,構建器將自動重用現有的SparkSession;如果不存在則會創建一個SparkSession.appName("xxx").config("hive.exec.dynamic.partition", "true") # 設置分區.config("hive.exec.dynamic.partition.mode", "nonstrict") # 設置hive是動態寫入的方式.config("spark.sql.broadcastTimeout", 3000).config("spark.sql.sources.partitionOverwriteMode", "dynamic") # 設置hive動態寫分區.config("spark.checkpoint.dir", "/user/vc/projects_prod/checkpoint/data") # 設置checkpoint的路徑.enableHiveSupport().getOrCreate()# 3、使用SparkSession對象進行數據操作:
val df = spark.read.json("path/to/json/file")
df.show()
三、sparkSession的配置參數參考
https://blog.csdn.net/u010569893/article/details/111356664