es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for 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 tipo int 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 columna id en la tabla de MySQL a varchar o bigint, o puedes modificar los datos en el archivo de HDFS para asegurarte de que sea un entero.

Comments are closed.