我有一个MySQL表,其中varchar列中的一些值以'^M‘结尾(即回车或'\r'),而其他值则没有。MySQL数据库是我无法控制的生产环境的一部分,因此我无法使用简单的update mytable set mycol = trim(mycol);删除尾部回车。
当我将sqoop表放到集群中时,我注意到带有回车返回的记录最终出现了对齐错误,从而产生了一些奇怪的查询结果。sqoop (v1.4.4)命令如下所示:
sqoop import \
--connect jdbc:mysql://myhost:3306/mydb
--username myuser
--password mypass
--table mytable
--target-dir user/hive/warehouse/mydb.db/mytable
--hive-import
--hive-table mydb.mytable
--hive-overwrite -m 1sqoop数据是否可能包含一些从MySQL直接返回的回车,而不需要某种中间步骤来删除回车?
理想的工作流是由oozie调度的一个简单的oozie命令。使用sed (或其他什么)对数据进行暂存并去掉\r似乎是一种假象。
发布于 2014-11-10 21:54:20
答案在手册(http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html)中。我需要在我的sqoop语句中添加以下参数:
--hive-drop-import-delimshttps://stackoverflow.com/questions/26853164
复制相似问题