Spark-sql-json-datasets
Spark SQL-JSONデータセット
Spark SQLは、JSONデータセットのスキーマを自動的にキャプチャし、それをDataFrameとしてロードできます。 この変換は、ストリングのRDDまたはJSONファイルで* SQLContext.read.json()*を使用して実行できます。
Spark SQLは、データの読み取りと書き込みの両方のためにJSONスキーマの自動キャプチャとともにJSONデータをクエリするオプションを提供します。 Spark SQLはJSONデータのネストされたフィールドを理解し、ユーザーが明示的な変換なしでこれらのフィールドに直接アクセスできるようにします。
例
*employee.json* という名前のテキストファイルの *employee* レコードの例を考えてみましょう。 次のコマンドを使用して、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操作を実行します-
JSONドキュメントを読む
まず、JSONドキュメントを読む必要があります。 それに基づいて、 dfs という名前のDataFrameを生成します。
次のコマンドを使用して、フィールド-id、name、およびageを含む employee.json という名前のJSONドキュメントを読み取ります。 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形式にデータを移行できます。