Spark-sql-hive-tables
Spark SQL-Hiveテーブル
Hiveは、 SQLContext を継承する HiveContext としてSparkライブラリにバンドルされています。 HiveContextを使用すると、HiveMetaStoreでテーブルを作成および検索し、HiveQLを使用してクエリを書き込むことができます。 既存のHiveデプロイメントを持たないユーザーでも、HiveContextを作成できます。 hive-site.xml で構成されていない場合、コンテキストは metastore_db というメタストアと warehouse というフォルダーを現在のディレクトリに自動的に作成します。
Hiveテーブルを使用した employee レコードの次の例を考えてみましょう。 記録されたデータはすべて、 employee.txt という名前のテキストファイルにあります。 ここでは、まずHiveContextオブジェクトを初期化します。 それを使用して、テーブルを作成し、HiveQL言語を使用して従業員レコードデータをロードし、それにクエリを適用します。
Sparkシェルを起動します
まず、Spark Shellを起動する必要があります。 HiveTablesを使用するということは、Hive MetaStoreで作業しているということです。 したがって、システムはテーブルデータを格納するためのウェアハウスを自動的に作成します。 したがって、スーパーユーザーでSpark Shellを実行することをお勧めします。 次のコマンドを検討してください。
SQLContextオブジェクトを作成する
HiveContextをSparkシェルに初期化するには、次のコマンドを使用します
HiveQLを使用してテーブルを作成する
次のコマンドを使用して、フィールド id 、 name 、および age を持つ employee という名前のテーブルを作成します。 ここでは、 HiveQL 構文の Create ステートメントを使用しています。
HiveQLを使用してデータをテーブルにロードする
次のコマンドを使用して、従業員レコードデータを従業員テーブルにロードします。 正常に実行されると、指定された従業員レコードはスキーマに従って employee テーブルに保存されます。
テーブルからフィールドを選択
テーブルに対してあらゆる種類のSQLクエリを実行できます。 HiveQL選択クエリを使用してすべてのレコードを取得するには、次のコマンドを使用します。
レコードデータを表示するには、結果のDataFrameで* show()*メソッドを呼び出します。