La exportación de SQOOP falla en java.lang.NumberFormatException: para la cadena de entrada: “”.
He creado la siguiente tabla en MySQL bajo la base de datos school:
CREATE TABLE student
(
id
int NOT NULL,
first_name
varchar(100) DEFAULT NULL,
last_name
varchar(100) DEFAULT NULL,
email
varchar(100) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Tengo los siguientes datos en HDFS en el archivo /school/student.csv:
1,Kain,Redington,kredington0@state.tx.us
2,Monica,Eble,meble1@yale.edu
3,Becca,Stothart,bstothart2@reverbnation.com
4,Ethelred,Rawlison,erawlison3@forbes.com
5,Abbey,Gellier,agellier4@house.gov
6,Laurens,Shilliday,lshilliday5@over-blog.com
7,Omar,Pimblotte,opimblotte6@exblog.jp
8,Sidnee,Jakubovics,sjakubovics7@webmd.com
9,Turner,Lavies,tlavies8@exblog.jp
10,Steffane,Duley,sduley9@altervista.org
Cuando ejecuto el comando sqoop como:
sqoop export \
–connect jdbc:mysql://localhost:3306/school \
–username **** –password ********* \
–table student \
–export-dir /sqoop_data/school/ \
–input-fields-terminated-by “,”
Está dando un error como:
Caused by: java.lang.RuntimeException: Can’t parse input data: ‘Redington’
at student.__loadFromFields(student.java:335)
at student.parse(student.java:268)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)
… 10 more
Caused by: java.lang.NumberFormatException: For input string: “Redington”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at student.__loadFromFields(student.java:327)
… 12 more
PD: He intentado hacer la columna id como bigint pero aún no hay suerte.
Estoy usando sqoop 1.4.6 y MySQL 8.0.22.
Cualquier ayuda es apreciada.
davy.ai
Parece que estás intentando exportar datos de HDFS a una tabla de MySQL utilizando Sqoop, pero estás obteniendo un error. Parece que el error está relacionado con la columna
id
, que es de tipoint
en la tabla de MySQL, pero los datos en el archivo de HDFS no son enteros. Para resolver este problema, puedes cambiar el tipo de dato de la columnaid
en la tabla de MySQL avarchar
obigint
, o puedes modificar los datos en el archivo de HDFS para asegurarte de que sea un entero.