天天看點

Spark DataFrame操作

DataFrame在Spark 1.3時加入,其前身是Spark 1中的SQL Context、Streaming Context、Hive Context等對象,它類似于關系資料庫中的表,是行和列進行組織資料。

DataFrame相當是一張二維表,可以使用SparkSession中的各種函數來建立。

按照和上小節對Spark RDD的方式進行對Spark DataFrame進行說明,且由于Spark DataFrame是在Spark 2中添加的,

通過使用SparkSession進行建立,是以通過以下的步驟進行示範。

操作的對應的視訊如下,在騰訊課堂可免費檢視所有的視訊與下載下傳簡介資料個人大資料平台的搭建與學習實踐-PySpark-學習視訊教程-騰訊課堂 (qq.com)

1-打開官方文檔和JupyterLab

PySpark中SparkSession類的文檔:https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.SparkSession.html

通過Jupyter-lab指令打開jupyter notebook。

2-建立SparkSession對象

在5-2節中已經對SparkSession的方式進行了簡單的示範,它主要是通過類中Builder類型屬性進行建構SparkSession執行個體的。

如果想深入的了解Builder,可以通過文檔上的源碼連結跳轉到源碼進行檢視。

關于Builder屬性的源碼

3-通過SparkSession對象讀取資料生産DataFrame

通過上一步建立了SparkSession對象spark後,就可以它來建立Spark DataFrame資料類型了,通過函數是createDataFrame(data[, schema, …])。

文檔中對函數中的data參數說明:可以是 RDD, list or pandas.DataFrame。或使用read屬性進行讀取資料,這部分知識點在Spark SQL小節中說明。

拷貝文檔下載下傳的執行個體代碼進行執行,調用createDataFrame函數建立DataFrame資料的語句,注意語句中使用StructField定義表模型。

而StructType在函數說明中也提及了,可以調整到對應的文檔中檢視。StructType -- > StructType --> StructField

4-對DataFrame資料對象操作

可以檢視《Python大資料分析從入門到精通》中的PySpark DataFrame中的API示例。

打開DataFrame Python文檔:https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.DataFrame.html

DataFrame的屬性

Spark DataFrame操作

功能函數分類

關聯處理函數-将兩個DataFrame進行連接配接。類似SQL中的關聯操作

Spark DataFrame操作

 排序統計

Spark DataFrame操作