Hive テーブル

この記事では、外部テーブルを使用してクラウド ストレージから Databricks に Hive テーブル をインポートする方法について説明します。

ステップ 1: CREATE TABLE ステートメントを表示する

Hive コマンドラインで SHOW CREATE TABLE <tablename> コマンドを発行して、テーブルを作成したステートメントを確認します。

hive> SHOW CREATE TABLE wikicc;
OK
CREATE  TABLE `wikicc`(
  `country` string,
  `count` int)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  '<path-to-table>'
TBLPROPERTIES (
  'totalSize'='2335',
  'numRows'='240',
  'rawDataSize'='2095',
  'COLUMN_STATS_ACCURATE'='true',
  'numFiles'='1',
  'transient_lastDdlTime'='1418173653')

ステップ 2: CREATE EXTERNAL TABLE ステートメントを発行する

戻されたステートメントが CREATE TABLE コマンドを使用している場合は、そのステートメントをコピーし、 CREATE TABLECREATE EXTERNAL TABLEに置き換えます。

  • EXTERNAL これにより、テーブルを削除しても Spark SQL によってデータが削除されなくなります。

  • TBLPROPERTIES フィールドは省略できます。

DROP TABLE wikicc
CREATE EXTERNAL TABLE `wikicc`(
  `country` string,
  `count` int)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  '<path-to-table>'

ステップ 3: データに対して SQL コマンドを発行する

SELECT * FROM wikicc