利用sqoop从 hive中往mysql中导入表出现的问题

这个错误的原因是指定Hive中表字段之间使用的分隔符错误,供Sqoop读取解析不正确。如果是由hive执行mapreduce操作汇总的结果,默认的分隔符是 ‘\001‘,否则如果是从HDFS文件导入的则分隔符则应该是‘\t‘。此处我是hive执行mapreduce分析汇总的结果,所以默认的分隔是‘\001‘。Sqoop命令修改如下,指定分隔符:

[[email protected] ~]$ sqoop-export --connect jdbc:mysql://secondmgt:3306/transport --username hive --password hive --table jtxx --export-dir /hive/warehouse/hive.db/temptrans --input-fields-terminated-by ‘\001‘ ;

其他问题  见 :http://blog.csdn.net/niityzu/article/details/45190787

时间: 2024-10-11 05:35:16

利用sqoop从 hive中往mysql中导入表出现的问题的相关文章

如何利用sqoop将hive数据导入导出数据到mysql

运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂hadoop大数据培训组原创,陆续有hadoop大数据技术相关文章奉上,请多关注! 在使用过程中可能遇到的问题: sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中. sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.ja

hive 中与mysql 中函数同名不同意的方法记录

max 函数 在hive中max函数是一个聚合函数,所以,而且返回值是double ,而且后面必须跟group by ,这个和mysql差异很大 Built-in Aggregate Functions (UDAF) DOUBLEmax(col)Returns the maximum value of the column in the group. mysql 中 Returns the maximum value of expr. MAX() may take a string argume

设置Linux中的Mysql不区分表名大小写

1. MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误. 2. 解决办法是:修改MySQL的配置文件my.cnf,在[mysqld]部分添加如下配置选项lower_case_table_names = 1,重启MySQL服务即可. 3. 但这个办法治标不治本,根本的解决办法是遵从跨平台开发的好的实践,例如SQL语句中的库名.表名.字段名等等要严格区分大

sqoop 从hive、hbase将数据导入到关系数据库

1.sqoop将hive中的数据导入到mysql for example: sqoop export --connect jdbc:mysql://10.18.101.15:3306/wda --username restdbuser --password 123456 --table adl_trend_num_android --export-dir /apps/hive/warehouse/adldb.db/adl_trend_num_android/date_stamp=$date --

sqoop导出hive数据到mysql避免空值

sqoop导入导出问题 sqoop export --connect jdbc:mysql://ip:3306/eqpt_base_db?characterEncoding=utf8 --username root --password secret_password --table A_JQZ_T_GAS_GET_ORDER_NUM_INFO_S  --export-dir  /user/hive/warehouse/origin_ennenergy_energytrade.db/a_jqz_

myeclispe中向mysql中插入中文数据出现??问题解决办法

或许很多人会出现??这种令人头痛的mysql的中文乱码问题:解决如下: 1.先对于新建的数据库要设置默认的字符集为UTF-8 create database mydb default character set utf8 collate utf8_general_ci; 2.然后对于想对应的表进行设置默认字符集 CREATE TABLE IF NOT EXISTS `mydb` ( `username` varchar(64) NOT NULL, `userid` int(11) NOT NUL

在Navicat 中给Mysql中的某字段添加前缀00

第一次分享心得,希望大家多多关注. 我遇到的情况是这样的,在Navicat中某表的varchar字段内容长度不够5的在内容前面添加'0':如字段内容是 101 我就要改成00101: 其中有2个难点:1.判断字段内容的长度(我认知不够的原因) 2.给字段内容添加前缀: 之前的错误sql是 update base_sf set diy_code='00'+diy_code where pk in (select pk from base_sf where LENGTH(diy_code)=3) 这

bash中使用mysql中的update命令

mysql -uroot -ppasswd -e "update tbadmin set sPassword ='************' where sUserName='admin'" database mysql客户端命令行有一个参数是 -e,即运行制定SQL命令.例如 mysql -uxx -pxx -e"select * from table" database

oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集

1 怎样执行一个sql脚本文件,这个脚本文件写了一系列的sql语句集,比如sql.sql 放在D:\MyEclipse 8.6\Workspaces\OASystem\WebRoot\sql.sql下 >cd D:\MyEclipse 8.6\Workspaces\OASystem\WebRoot\ >>sqlplus >>@ sql.sql; 2 怎样查看刚刚创建的表 SQL> select table_name from user_tables; SQL Plus