sqoop—转义者—可选地用

lbsnaicq  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(506)

我需要将数据导入到以逗号(,)作为分隔符的.csv文件中。
我使用下面的sqoop选项。
--可选地用“\”括起来--用“\”转义
下面是我想要的输入数据和输出数据。
输入“foo output i want”“foo,但我得到的低于输入“foo output”foo
另一个例子:
input foo“output i want foo”“但我的输入值低于input foo“output foo”
我怎样才能达到期望的输出

4xrmg8kj

4xrmg8kj1#

参考SQOOP指南7.2.11。用于更好地理解的大型对象—由括起、—由转义和—可选地由示例括起。
基于这个问题,以下是了解的细节。

--fields-terminated-by ,    Since you need a file with a comma as the delimiter.
--optionally-enclosed-by '\"'  This will enclose only the fields whose data contains delimiter comma , in them.
--escaped-by \\   Used to escape the enclosing characters(double quotes in this case) if they are present in the data field which requires enclosing.

例子:
输入:假设源表中的数据如下所示,并带有相应的列。对于表示,我使用管道(|)作为分隔符。

Some string, with a comma.|1|2|3...
Another "string with quotes"|4|5|6...

输出:sqoop import--字段以终止,-用“\”括起来--转义为\。。。

"Some string, with a comma.","1","2","3"...
"Another \"string with quotes\"","4","5","6"...

说明:所有字段都以逗号结尾,所有字段都用双引号括起来。如果数据中有带双引号的字段,则这些引号将用反斜杠()转义,如第二行所示。
输出:sqoop import--字段以终止,--可选地用“\”括起来--转义为\。。。

"Some string, with a comma.",1,2,3...
"Another \"string with quotes\"",4,5,6...

说明:所有字段都以逗号结尾,只有与数据中的逗号相连的字段才用双引号括起来。如果数据中有带双引号的字段,则这些引号将用反斜杠()转义,如第二行所示,甚至此列也将被括起来,如第二行所示。
对于您的场景:
输入:假设源表中的数据如下所示,并带有相应的列。对于表示,我使用管道(|)作为分隔符。

"foo|bar"|1|2
foo"|3|4|"bar

可能的输出:sqoop import--字段以终止,-用“\”括起来--转义为\。。。

"\"foo","bar\"","1","2"
"foo\"","3","4","\"bar"

可能的输出:sqoop import--字段以终止,--可选地用“\”括起来--转义为\。。。

"\"foo","bar\"",1,2
"foo\"",3,4,"\"bar"

相关问题