- Subscribe to RSS Feed
- Mark Question as New
- Mark Question as Read
- Float this Question for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
Sqoop import from Sybase to Hive failing when the complete table name is given in the import statement
- Labels:
-
Apache Sqoop
Created ‎11-17-2015 07:46 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Trying to import table data from Sybase table to Hive using the below command:
sqoop import --verbose --driver com.sybase.jdbc4.jdbc.SybDriver --connect jdbc:sybase:Tds:dbgbl-tst:8032/DATABASE=trim_bw --username hrongali -P --table trim_bw..account --hive-database trim_bw --hive-table account --hive-import -m 1
Sqoop is generating the below alias(AS trim_bw..account) which is failing to execute in Sybase and the below exception is thrown:
2015-11-17 14:29:48,511 INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: SELECT col_1, col_2, col_3, col_4 FROM trim_bw..account AS trim_bw..account WHERE ( 1=1 ) AND ( 1=1 ) 2015-11-17 14:29:48,514 ERROR [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Top level exception: com.sybase.jdbc4.jdbc.SybSQLException: Incorrect syntax near '.'. at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4084) at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3174) at com.sybase.jdbc4.tds.Tds.getResultSetResult(Tds.java:3940) at com.sybase.jdbc4.tds.TdsCursor.open(TdsCursor.java:328) at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:2370) at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeQuery(SybPreparedStatement.java:264) at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111) at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
Note: Tried with out giving the database name in the --table parameter, but the table object is not being recognized with that convention
Created ‎11-18-2015 12:47 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am following stackoverflow link. Can you try this?
sqoop import --verbose --driver com.sybase.jdbc4.jdbc.SybDriver --connect jdbc:sybase:Tds:dbgbl-tst:8032/DATABASE=trim_bw --query "select * from trim_bw..account where \$CONDITIONS" --fields-terminated-by ',' --username hrongali -P --hive-database trim_bw --hive-table account --hive-import -m 1
Created ‎11-17-2015 09:28 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have you tried using the --query option directly and specifying the Sybase query to fetch data?
--query "select * from trim_bw..account where \$CONDITIONS"
Created ‎11-18-2015 12:47 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am following stackoverflow link. Can you try this?
sqoop import --verbose --driver com.sybase.jdbc4.jdbc.SybDriver --connect jdbc:sybase:Tds:dbgbl-tst:8032/DATABASE=trim_bw --query "select * from trim_bw..account where \$CONDITIONS" --fields-terminated-by ',' --username hrongali -P --hive-database trim_bw --hive-table account --hive-import -m 1
