简体   繁体   中英

How to import Postgres tables(Geometry format) into Hive using Sqoop?

I have Postgres tables with Geometry type data.Now I am trying to import Postgres tables into Hive using Sqoop.Then its giving this errors,

sqoop import --connect jdbc:postgresql://192.168.1.130:5432/Analyst_Bangalore --username postgres --password track@123 --table state -m 1 --warehouse-dir /user/hive/warehouse/analytics.db

 ERROR orm.ClassWriter (ClassWriter.java:generateFields(560)) - Cannot resolve SQL type 1111
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateEquals(645)) - Cannot resolve SQL type 1111
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateEquals(645)) - Cannot resolve SQL type 1111
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateDbRead(718)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateDbRead(718)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateLoadLargeObjects(798)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateLoadLargeObjects(798)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,115 ERROR orm.ClassWriter (ClassWriter.java:myGenerateDbWrite(884)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,116 ERROR orm.ClassWriter (ClassWriter.java:myGenerateDbWrite(884)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,116 ERROR orm.ClassWriter (ClassWriter.java:myGenerateHadoopRead(955)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,116 ERROR orm.ClassWriter (ClassWriter.java:myGenerateHadoopWrite(1595)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,117 ERROR orm.ClassWriter (ClassWriter.java:myGenerateHadoopWrite(1595)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,117 ERROR orm.ClassWriter (ClassWriter.java:myGenerateToString(1314)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,117 ERROR orm.ClassWriter (ClassWriter.java:myGenerateToString(1314)) - No Java type for SQL type 1111 for column the_geom
2016-10-20 15:52:30,117 ERROR sqoop.Sqoop (Sqoop.java:runSqoop(181)) - Got exception running Sqoop: java.lang.NullPointerException
java.lang.NullPointerException
        at org.apache.sqoop.orm.ClassWriter.parseNullVal(ClassWriter.java:1377)
        at org.apache.sqoop.orm.ClassWriter.parseColumn(ClassWriter.java:1402)
        at org.apache.sqoop.orm.ClassWriter.myGenerateParser(ClassWriter.java:1528)

Anybody have any idea how to import geometry data into hive,please suggest me.Any input is appreciated.

Geometry datatype is not supported be default by Sqoop. You need to add it's mapping manually for Java( for POJO class ).

Add this tag in your code:

--map-column-java the_geom=String

Final command:

sqoop import \
 --connect jdbc:postgresql://192.168.1.130:5432/Analyst_Bangalore \
 --username postgres \
 --password track@123 \
 --map-column-java the_geom=String \
 --table state \
 -m 1 \
 --warehouse-dir /user/hive/warehouse/analytics.db

Add --map-column-hive the_geom=string if you using doing hive import .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM