1
フィラデルフィアの犯罪発生に関するデータを含む.csvファイルがあります。 私はこのデータをHIVEテーブルに変換するためにamazon EMRでハイブスクリプトを使用しています。私は、次のハイブのスクリプトを使用していますハイブクエリから外部テーブル出力を作成できません
:
CREATE EXTERNAL TABLE IF NOT EXISTS Crime(
Dc_Dist INT,
PSA INT,
Dispatch_Date_Time TIMESTAMP,
Dispatch_Date date,
Dispatch_Time STRING,
Hour INT,
Dc_Key BIGINT,
Location_Block STRING,
UCR_General INT,
Text_General_Code STRING,
Police_Districts INT,
Month STRING,
Lon STRING,
Lat STRING)
COMMENT 'Data about crime from a public database'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
location 's3://dsabucket/crimeData/crime';
私はこのスクリプトを実行しますが、私は自分の出力フォルダ内のファイルやデータを得ることはありません。テーブルが正しく作成されているかどうかはわかりません。私が理解しているように、 'STORED AS TEXTFILE'行はこのテーブルをテキストファイルとして保存する必要があります。
「IF NOT EXISTS」を使用すると、tableがすでに存在する場合に文の実行を黙ってスキップするため、CREATE TABLE文で危険です。代わりにDROP + CREATEを使用してください。 – leftjoin
DDLはファイルを作成しません。データは実際にテーブルに挿入されましたか?あなたはログを提供していません。そうだったら、最終的な一貫性の問題があるかもしれません。 – leftjoin
'CREATE EXTERNAL TABLE'ファイルはハイブ・メタストアに、' Crime'テーブルにアクセスする際にS3を参照するエントリを作成します。このコマンドを実行した後、Hiveで 'SELECT * FROM Crime 'を実行するとどうなりますか? –