需要有关将数据从Mysql导入HDFS的帮助

时间:2013-11-18 23:20:28

标签: mysql oracle hadoop hdfs sqoop

我正在尝试使用SQOOP将数据从MySQL DB导入HDFS。 SQOOP导入语句执行正常,但是当我查看HDFS文件时,某些字段在字段末尾显示为\字符(因为MYSQL表字段在两个单词之间有相同字段的字符)。你能帮我解决一下如何将这个字段导入HDFS和Mysql表字段一样吗?

示例:MySQL表字段(名称)的值为(sami,ramesh),当我使用SQOOP将其导入HDFS时,我将此字段视为sami / ramesh(不同的字段,如2个字段)。我希望在HDFS中将它作为sami,ramesh(像mySQL字段这样的单个字段)。

有没有办法做到这一点?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果没有看到你尝试的import语句,我不是百分之百确定为什么会发生这种情况......但也许原因是你使用字段的默认分隔符,这正是逗号,所以如果你想要保留它,你应该使用不同的分隔符,例如:

--fields-terminated-by \t

另一种选择是使用--enclosed-by '\"',它看起来像“萨米,拉梅什”。

希望有所帮助!如果没有,请发布您的import语句以查看问题所在。

答案 1 :(得分:0)

典型的sqoop无法解决您的问题。您需要使用查询(而不是表格)并替换','导入数据时。

--query <statement>

例如

--query select replace(name, ',', ' '), .... from ....