我有一个MySQL表,其中varchar列中的某些值以'^ M'结尾(即回车或'\ r'),而其他值则没有。 MySQL数据库是我无法控制的生产环境的一部分,因此我无法使用简单的update mytable set mycol = trim(mycol);
删除尾随回车。
当我sqoop
MySQL表到我的集群时,我注意到带有回车符的记录最终未对齐,导致一些奇怪的查询结果。 sqoop(v 1.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 1
问)是否有可能直接从MySQL返回包含某些回车的sqoop
数据而没有某种中间步骤来删除回车?
理想的工作流程是由sqoop
安排的简单oozie
命令。暂存数据并使用sed(或其他)剥离\r
看起来像是一块垃圾。
答案 0 :(得分:1)
答案在手册中(http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html)。我需要在sqoop
语句中添加以下参数:
--hive-drop-import-delims