У меня в облаке, внутри ведра S3, файл CSV с некоторыми данными.Создание таблиц DynamoDB с использованием Hive
Я хотел бы экспортировать эти данные в таблицу 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? (возможно, на основе моего сценария) ... – DanielY
SELECT * from FromCSV WHERE value RLIKE '[0-9] +' –
звучит великолепно Спасибо дино :) – DanielY