CSVファイルをHiveで読み込むにはどうすればよいですか?
CSVファイルを読み込むためのHiveの使用は、以下のステップに従って行えます。
- 「data.csv」というCSVファイルの模式を定義する外部テーブルを作成します。CSVファイルの構成例として、列が「col1」と「col2」から成る場合、下記コマンドで外部テーブルを作成します。
- CREATE EXTERNAL TABLE csv_table (
col1 STRING,
col2 INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
STORED AS TEXTFILE
LOCATION ‘/path/to/csv/file’; - なお、LOCATIONにはローカルファイルシステムパスやHDFSパスなど、CSVファイルのパスを指定します。
- 外部テーブルからデータをSELECT文で読み取ります。例:
- SELECT col1, col2 FROM csv_table;
- こうしてCSVファイル内のデータは読み込まれる
ご注意ください:
- 外部テーブルを作成するときは、テーブルの列がCSVファイルの列と1対1に対応していて、列のデータ型がCSVファイルのものと一致していることを確認する必要があります。
- CSVファイルでは、フィールドの区切り文字としてカンマを使用する必要があります。区切り文字は「FIELDS TERMINATED BY ‘,’」で指定します。
- CSVファイル中で特殊文字(カンマ、改行などの記号)が一部のフィールドに含まれる場合は、適宜エスケープ処理かクォーテーションで括る必要があります。
- CSVファイルがHDFS上にある場合は、ハイブクラスタからファイルが格納されているHDFSへのアクセス権限があるかを確認する必要があります。
- HiveはCSVファイルを読み込む際、テーブル定義に基づいて自動的にファイルをパースし、テーブルのデータに変換します。