sqoop 将数据从hive导到mysql中出现的问题

sqoop版本为1.4.6    

一开始使用指定hdfs目录的sqoop脚本导数据

sqoop export  \ 
--connect jdbc:mysql://172.16.2.52:4307/databasename \ 
--username user \ 
--password pass \ 
--table tablename \ 
--export-dir /user/hive/warehouse/***/***   \ 

        --fields-terminated-by '\001'

    结果报错,开始推测是hive中timestamp类型字段不能导入到mysql date类型字段中,因为在sqoop生成的程序中调用了    

       __cur_str = __it.next();

    if (__cur_str.equals("null") || __cur_str.length() == 0) { this.repaid_due_date = null; } else {
      this.repaid_due_date = java.sql.Date.valueOf(__cur_str);

    }

 java.sql.Date.valueOf(__cur_str)传入的值要求是YYYY-MM-DD类型的,比如传入2015-04-29 11:14:35会报错。


后来使用直接指定hive表的命令

    sqoop export --connect  dbc:mysql://172.16.2.52:4307/databasename
    --username user--password pass--table tablename

    --hcatalog-database hivedatabasename--hcatalog-table hivetablename

可以直接导入。

你可能感兴趣的:(开发问题)