Сбой экспорта Sqoop с NumberFormatException - PullRequest
0 голосов
/ 03 мая 2019

Невозможно экспортировать данные в тераданные, используя sqoop для двойных значений.Я получаю NumberFormatException, даже если я изменил тип данных в teradata на string, я получаю NumberFormatException.Я считаю, что преобразование строки в число с плавающей запятой или целочисленных результатов в NumberFormatException.Пожалуйста, исправьте меня, если я ошибаюсь.

Я также включил опцию map-column-java в экспорт sqoop, чтобы явно указать типы данных для экспортируемых столбцов.

У меня есть файл csvс "|"разделитель и пример данных выглядят так, как показано ниже.

65.0|50.0|65.0|118.77
101.0|96.0|101.0|210.08
37.0|29.0|37.0|34.78
66.0|61.0|66.0|153.78

и моя таблица тераданных создается, как показано ниже.

CREATE SET TABLE DB_NAME.TABLENAME(
  col1 varchar(20),
  col2 varchar(20),
  col3 varchar(20),
  col4 varchar(20)
)

Я также пытался использовать тип данных как десятичный (10,5)и упомянул map-column-java как «Double» для всех столбцов, но я все еще получаю ту же ошибку.

Из комментария OP:

sqoop export --libjars /opt/cloudera/parcels/SQOOP_TERADATA_CONNECTOR/sqoop-connector-teradata-1.7c6.jar,/opt/cloudera/parcels/SQOOP_TERADATA_CONNECTOR/lib/terajdbc4.jar \
  --connect "jdbc:teradata://host_name/Database=database_name,CHARSET=UTF8" \
  --table table_name \
  --username username \
  --password password \
  --export-dir /path/to/directory \
  --map-column-java col1=Double,col2=Double,col3=Double,col4=Double \
  --input-fields-terminated-by '|' \
  --input-lines-terminated-by '\n' \
  --input-null-string '' \
  --input-null-non-string ''
...