pyspark之創建SparkSession

1、SparkSession 介紹

通過SparkSession 可以創建DataFrame, 也可以把DataFrame註冊成一個table,基於此執行一系列SQL操作。DataFrame和pandas裏的DataFrame類似。

關於什麼是DataFrame,後續會出一篇介紹spark基本概念的博客。

2、實驗環境

博主是用的 jupyter notebook,新建了一個pyspark的notebook。環境如何搭建這裏就不多說了。
當然了,下面的代碼也可以在PyCharm裏實現。

3、創建一個SparkSession

SparkSQL支持scala、java、python和R。以官網示例python爲例:

from pyspark.sql import SparkSession
spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

其中:

  • 在pyspark中換行要 加入\
  • .getOrCreate() 指的是如果當前存在一個SparkSession就直接獲取,否則新建。
  • .enableHiveSupport() 使我們可以從讀取或寫入數據到hive。

我們還可以自定義配置,例如定義spark任務執行時的內存:

from pyspark.sql import SparkSession
myspark = SparkSession.builder \
    .appName('compute_customer_age') \
    .config('spark.executor.memory','2g') \
    .enableHiveSupport() \
    .getOrCreate()

4、基於SparkSession操作

Create DataFrame:從hive讀數據

sql = """
      SELECT id as customer_id,name, register_date
      FROM [db_name].[hive_table_name]
      limit 100
      """
df = myspark.sql(sql)
df.show()

df.show() 可以預覽數據,默認顯示前20行,df.show(n) 可以顯示前n行。
df.show()結果如圖:
在這裏插入圖片描述

關於SparkSession的介紹就到這裏了,博主也是邊學習邊總結經驗,把踩到的坑記錄下來。

參考資料:
1、Spark SQL, DataFrames and Datasets Guide

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章