SparkSesson爲使用Dataset和DataFrame API編程Spark的入口點。
SparkSesson對象可以創建DataFrame,將Dataframe註冊爲表,並在表上執行SQL、緩存表、讀parquet文件等,通過下面的方式創建SparkSesson
from pyspark.sql import SparkSession
spark = SparkSession.builder.master('local').appName('Word-Count').config('"spark.some.config.option", "some-value"').getOrCreate()
- builder: 用於構建SparkSession實例
- master: 設置要連接的Spark主節點URL
- appName: 爲應用設置一個名字,這個名字會顯示在Spark Web UI
- config: 配置項,對於已經存在的SparkConf,可使用conf參數
from pyspark.conf import SparkConf
SparkSession.builder.config(conf=SparkConf()) - enableHiveSupport:啓用Hive支持,包括與持久性Hive Metastore的連接,對Hive SerDes的支持以及Hive用戶定義的功能。
- getOrCreate: 獲取現有的SparkSession,或者如果不存在,則根據此構建器中設置的選項創建一個新的SparkSession。
屬性
- catalog:用戶可以通過其創建,刪除,更改或查詢基礎數據庫,表,函數的界面
- conf:Spark的運行時配置界面。 這是用戶可用來獲取和設置與Spark SQL相關的所有Spark和Hadoop配置的界面。 獲取配置的值時,默認爲在基礎SparkContext中設置的值(如果有)。
- createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True): 從rdd,列表,pandas.DataFrame創建DataFrame
data: 數據,RDD, SQL data, list, 或者pandas.DataFrame
schema: list類型
df = spark.createDataFrame(data=[[1,2], [3,4]], schema=['a', 'b'])
df1 = spark.createDataFrame(data=[{'a': [1,2], 'b': [3,4]}])
df1.show(2)
+------+------+
| a| b|
+------+------+
|[1, 2]|[3, 4]|
+------+------+
附上官方文檔的連接:http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.SparkSession