Spark SQL - JSON 資料集



Spark SQL 可以自動捕獲 JSON 資料集的模式並將其載入為 DataFrame。此轉換可以使用SQLContext.read.json()在字串 RDD 或 JSON 檔案上進行。

Spark SQL 提供了一個查詢 JSON 資料的選項,以及用於讀寫資料的 JSON 模式自動捕獲功能。Spark SQL 理解 JSON 資料中的巢狀欄位,並允許使用者直接訪問這些欄位,無需任何顯式轉換。

示例

讓我們考慮一個名為employee.json的文字檔案中員工記錄的示例。使用以下命令建立一個 DataFrame (df)。

讀取名為employee.json的 JSON 文件,其內容如下,並根據 JSON 文件中的模式生成一個表。

employee.json - 將此檔案放入當前scala> 指標所在的目錄。

{
   {"id" : "1201", "name" : "satish", "age" : "25"}
   {"id" : "1202", "name" : "krishna", "age" : "28"}
   {"id" : "1203", "name" : "amith", "age" : "39"}
   {"id" : "1204", "name" : "javed", "age" : "23"}
   {"id" : "1205", "name" : "prudvi", "age" : "23"}
}

讓我們對給定的資料執行一些 DataFrame 操作。

DataFrame 操作

DataFrame 提供了一種用於結構化資料操作的特定領域語言。這裡我們包含一些使用 DataFrame 進行結構化資料處理的基本示例。

按照以下步驟執行 DataFrame 操作:

讀取 JSON 文件

首先,我們必須讀取 JSON 文件。基於此,生成一個名為dfs的 DataFrame。

使用以下命令讀取名為employee.json的 JSON 文件,該文件包含欄位:id、name 和 age。它建立一個名為dfs的 DataFrame。

scala> val dfs = sqlContext.read.json("employee.json")

輸出 - 欄位名稱自動從employee.json中獲取。

dfs: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string]

使用 printSchema 方法

如果要檢視 DataFrame 的結構(模式),請使用以下命令。

scala> dfs.printSchema()

輸出

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)

顯示資料

如果要顯示 DataFrame 中的資料,請使用以下命令。

scala> dfs.show()

輸出 - 你可以在表格格式中看到員工資料。

<console>:22, took 0.052610 s
+----+------+--------+
|age |  id  |  name  |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
| 23 | 1204 | javed  |
| 23 | 1205 | prudvi |
+----+------+--------+

然後我們可以在其中執行不同的 SQL 語句。使用者可以輕鬆地將資料遷移到 JSON 格式,而不管資料來源的來源。

spark_sql_data_sources.htm
廣告
© . All rights reserved.