クラウドの S3 バケット内に、いくつかのデータを含む CSV ファイルがあります。
そのデータを、列「キー」と「値」を持つ DynamoDB テーブルにエクスポートしたいと考えています。
私が書いた現在のハイブスクリプトは次のとおりです。
CREATE EXTERNAL TABLE FromCSV(key string, value string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ', '
LOCATION 's3://mybucket/output/';
CREATE EXTERNAL TABLE hiveTransfer(col1 string, col2 string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "InvertedIndex",
"dynamodb.column.mapping" = "col1:key,col2:value");
INSERT OVERWRITE TABLE hiveTransfer SELECT * FROM FromCSV;
これで、基本的にスクリプトは機能します。ただし、このスクリプトを次のように変更したいと思います。
1) スクリプトは、テーブル「InvertedIndex」が DynamoDB に既に存在する場合にのみ機能します。スクリプトで新しいテーブルを作成し、データを既存のように配置したいと考えています。
2) CSV では、キーは常に文字列ですが、文字列または整数の 2 種類の値があります。スクリプトで 2 つを区別し、2 つの異なるテーブルを作成するようにしたいと思います。
これらの 2 つの変更に関するヘルプは感謝されます。ありがとうございました