2016-12-09 53 views
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'; 

This image is a screenshot of the workflow I follow to run the hive script on the AWS EMR cluster]

私はこのスクリプトを実行しますが、私は自分の出力フォルダ内のファイルやデータを得ることはありません。テーブルが正しく作成されているかどうかはわかりません。私が理解しているように、 'STORED AS TEXTFILE'行はこのテーブルをテキストファイルとして保存する必要があります。

+0

「IF NOT EXISTS」を使用すると、tableがすでに存在する場合に文の実行を黙ってスキップするため、CREATE TABLE文で危険です。代わりにDROP + CREATEを使用してください。 – leftjoin

+0

DDLはファイルを作成しません。データは実際にテーブルに挿入されましたか?あなたはログを提供していません。そうだったら、最終的な一貫性の問題があるかもしれません。 – leftjoin

+0

'CREATE EXTERNAL TABLE'ファイルはハイブ・メタストアに、' Crime'テーブルにアクセスする際にS3を参照するエントリを作成します。このコマンドを実行した後、Hiveで 'SELECT * FROM Crime 'を実行するとどうなりますか? –

答えて

0

テーブルを作成またはない

すなわちTABLENAMEをDESCRIBE DESCRIBE使用をチェックします。

関連する問題