Spark SQL - JSON數(shù)據(jù)集

2018-12-20 16:37 更新
Spark SQL可以自動捕獲JSON數(shù)據(jù)集的模式,并將其作為DataFrame加載。 可以使用SQLContext.read.json()對String或JSON文件的RDD進行此轉(zhuǎn)換。
Spark SQL提供了一個選項,用于查詢JSON數(shù)據(jù)以及自動捕獲用于讀取和寫入數(shù)據(jù)的JSON模式。 Spark SQL了解JSON數(shù)據(jù)中的嵌套字段,并允許用戶直接訪問這些字段,而無需任何顯式轉(zhuǎn)換。

讓我們考慮一個名為employee.json的文本文件中的員工記錄示例。 使用以下命令創(chuàng)建DataFrame(df)。
使用以下內(nèi)容讀取一個名為employee.json的JSON文檔,并根據(jù)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"}
}
讓我們對給定的數(shù)據(jù)執(zhí)行一些數(shù)據(jù)幀操作。
DataFrame操作
DataFrame為結(jié)構(gòu)化數(shù)據(jù)操作提供了一個領域特定的語言。 這里我們包括使用DataFrames的結(jié)構(gòu)化數(shù)據(jù)處理的一些基本示例。
按照以下步驟執(zhí)行DataFrame操作 - 
閱讀JSON文檔
首先,我們必須讀取JSON文檔。 基于此,生成名為dfs的DataFrame。
使用以下命令讀取名為employee.json的JSON文檔,其中包含字段 - id,name和age。 它創(chuàng)建一個名為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的Structure(Schema),請使用以下命令。

scala> dfs.printSchema()

輸出

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)
顯示數(shù)據(jù)

如果要在DataFrame中顯示數(shù)據(jù),請使用以下命令。

scala> dfs.show()

輸出:您可以以表格格式查看員工數(shù)據(jù)。

<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語句。用戶可以以最小的努力將數(shù)據(jù)遷移到JSON格式,而不管數(shù)據(jù)源的來源。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號