需要有关将数据从mysql导入hdfs的帮助吗

r8xiu3jd  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(316)

我正在尝试使用sqoop将数据从mysql数据库导入hdfs。sqoop import语句执行得很好,但是当我查看hdfs文件时,一些字段在字段的末尾显示为\character(因为mysql表字段有一个字符,在两个单词之间,但是是同一个字段)。你能帮我把这个字段和mysql表字段一样导入hdfs吗?。
示例:mysql表字段(name)的值为(sami,ramesh),当我使用sqoop将其导入hdfs时,我将此字段视为sami/ramesh(不同的字段,如2个字段)。我想在hdfs中使用sami、ramesh(像mysql字段一样的单个字段)。
有什么办法吗?。非常感谢你的帮助。

qvk1mo1f

qvk1mo1f1#

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

--query <statement>

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

izkcnapc2#

没有看到你尝试的进口声明,我不是100%确定为什么会发生这种情况。。。但原因可能是您对字段使用的是默认分隔符,它正好是一个逗号,因此如果您想保留它,应该使用不同的分隔符,例如:

--fields-terminated-by \t

另一种选择是使用 --enclosed-by '\"' ,看起来像“萨米,拉美什”。
希望有帮助!如果没有,请张贴您的进口声明,看看问题出在哪里。

相关问题