2017-01-07 3 views
0

У меня есть данные, которые хранятся в hdfs, данные имеют пространство до и после значения, когда я пытаюсь экспортировать в mysql, он дает исключение numberformat, но когда i создавать данные без пробелов, он успешно вставил в mysql.Команды экспорта sqoop для данных, которые имеют пробелы раньше в hdfs

my question is can't we export the data which has space from hdfs to mysql usong sqoop export command? 

The data which i used 
1201, adi, sen manager, 30000, it 
1201, pavan, jun manager, 5000, cs 
1203, santhosh, junior, 60000, mech 

i created table like 
create table emp(id BIGINT,name varchar(20),desg varchar(20),salary BIGINT,dept varchar(20)); 

sqoop command -- sqoop export \ 
--connect jdbc:mysql://127.0.0.1/mydb \ 
--username root \ 
--table emp \ 
--m 1 \ 
--export-dir /mydir \ 
--input-fields-terminated-by ',' \ 
--input-lines-terminated-by '\n' 

result: numberformatexception input string:'1201' 
can't parse the data 

i discussed in forum, they said trim the space but i wants to know that automatically trim the spaces while perform sqoop export. 

can somebody give suggestions on this? 

ответ

0

Вы можете сделать 1 простую вещь:

Создать временную таблицу в MySQL со всеми VARCHAR

create table emp-temp(id BIGINT,name varchar(20),desg varchar(20),salary BIGINT,dept varchar(20)); 

Теперь создайте другой с числовыми полями после TRIM() и CAST()

create table emp as select CAST(TRIM(id) AS UNSIGNED), name, desg, CAST(TRIM(salary) AS UNSIGNED), dept FROM emp_temp; 
0

Sqoop внутренне запускает работу MapReduce.

Простое решение для запуска Mapper и подрезать пространства в ваших данных и получить вывод в другой файл и запустить экспорт sqoop на новый файл.

+0

Я попробовал данные из учебников по sqoop https://www.tutorialspoint.com/sqoop/ –

+0

может кто-нибудь попробовать те же данные и сообщить мне, я определенно уверен, что вы также получите исключение номера формата –

Смежные вопросы