Próbuję użyć EMR/Hive do importowania danych z S3 do DynamoDB. Mój plik CSV zawiera pola, które są ujęte w cudzysłowy i oddzielone przecinkiem. Podczas tworzenia zewnętrznej tabeli w ulu, jestem w stanie określić separator jako przecinek, ale jak mogę określić, że pola są ujęte w cudzysłowy?Jak obsługiwać pola zawarte w cudzysłowie (CSV) w importowaniu danych z S3 do DynamoDB przy użyciu EMR/Hive
Jeśli nie zaznaczę, widzę, że wartości w DynamoDB są wypełnione dwoma podwójnymi cudzysłowami "" wartością "", co wydaje się błędne.
Używam następującego polecenia do utworzenia zewnętrznej tabeli. Czy istnieje sposób na określenie, że pola są ujęte w podwójne cudzysłowy?
CREATE EXTERNAL TABLE emrS3_import_1(col1 string, col2 string, col3 string, col4 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '","' LOCATION 's3://emrTest/folder';
Wszelkie sugestie będą mile widziane. Dzięki Jitendra
myślę, że to powinno być 'poprawny' odpowiedź. Ktoś? Po prostu zmień "\" "na" \ ", jeśli Twój kod nie działa. – kennyut
Na wypadek, gdyby ktoś ponownie się z tym spotkał. Hive obejmuje teraz 'org.apache.hadoop.hive.serde2.OpenCSVserde'. Zobacz moją odpowiedź poniżej. –