2016-11-28 5 views
0

это мой CSV файлкак загрузить файл CSV в улье

id,name,address 

"1xz","hari","streetno=1-23-2,street name=Lakehill,town=Washington" 
"2xz","giri","streetno=5-6-3456,street name=second street,town=canada" 

я был загружен эти данные с помощью строки формата разделители «» но это не нагружал properley, я столкнулся с проблемой с адресом поданную. в поле адреса у меня есть данные, подобные этому формату «streetno = 1-23-2, название улицы = Lakehill, town = Washington» в этом адресе поданные значения заканчиваются снова «,». Было найдено одно решение у свиньи, помогите мне решить это с помощью улья.

я получаю этот выход

"1xz" "hari" "streetno=1-23-2 
"2xz" "giri" "streetno=5-6-3456 

это моя схема

create table emps (id string,name string,addresss string) row format delimited fields terminated by ',' lines terminated by '\n' stored as textfile; 
+0

Это должно помочь http://stackoverflow.com/questions/30637536/how-to-load-csv-data-with-enclosed-by-double-quotes-and-separated- по-вкладка-в-привет –

ответ

0

Использование split() функция возвращает массив строк: [0] = 'streetno' = [1] =» 1-23-2 ':

split(address,'=')[1] as address --returns '1-23-2' 
0

Вы уже нашли рабочее решение в Pig, так почему бы не перенести это отношение на Hive t возможно напрямую используя HCatalog.

STORE pig_relation INTO 'hive_table_name' USING org.apache.hive.hcatalog.pig.HCatStorer(); 

Убедитесь запуск Свиньи с помощью:

>pig -useHCatalog 

Таблица должна уже существовать в улье.

Надеюсь, это поможет.