我正在尝试使用SQOOP将数据从MySQL DB导入HDFS。 SQOOP导入语句执行正常,但是当我查看HDFS文件时,某些字段在字段末尾显示为\字符(因为MYSQL表字段在两个单词之间有相同字段的字符)。你能帮我解决一下如何将这个字段导入HDFS和Mysql表字段一样吗?
示例:MySQL表字段(名称)的值为(sami,ramesh),当我使用SQOOP将其导入HDFS时,我将此字段视为sami / ramesh(不同的字段,如2个字段)。我希望在HDFS中将它作为sami,ramesh(像mySQL字段这样的单个字段)。
有没有办法做到这一点?非常感谢您的帮助。
答案 0 :(得分:0)
如果没有看到你尝试的import语句,我不是百分之百确定为什么会发生这种情况......但也许原因是你使用字段的默认分隔符,这正是逗号,所以如果你想要保留它,你应该使用不同的分隔符,例如:
--fields-terminated-by \t
另一种选择是使用--enclosed-by '\"'
,它看起来像“萨米,拉梅什”。
希望有所帮助!如果没有,请发布您的import语句以查看问题所在。
答案 1 :(得分:0)
典型的sqoop无法解决您的问题。您需要使用查询(而不是表格)并替换','导入数据时。
--query <statement>
例如
--query select replace(name, ',', ' '), .... from ....