clickhouse:导入双引号反斜杠转义的数据

bfnvny8b  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(2)|浏览(1289)

我正在尝试导入一个html片段,它是csv中某个列的一部分。html代码段中有双引号,它的值被转义。这个csv是使用apachespark创建的。
为了说明这个问题,我刚刚用最少的数据创建了两列。

CREATE TABLE logs.processing ( ts String,text String)  ENGINE = Log

cat sample.csv // Content of the file

"Fri, 01 May 2020 06:47:05 UTC","<html id=\"html-div\">"

在引发异常后发出import命令。

cat sample.csv | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"

例外

Code: 117. DB::Exception: Expected end of line

如果我将sample.csv的内容更改为

"Fri, 01 May 2020 06:47:05 UTC","col2"

很好用。
你能帮我解决这个问题吗。
谢谢。

uurity8g

uurity8g1#

csv规范要求:
如果使用双引号括起字段,则出现在字段内的双引号必须在其前面加上另一个双引号进行转义。例如:
“aaa”,“b”,“bb”,“ccc”
它需要首先生成有效的csv文件,或者在传递给ch客户端之前修复它:

cat sample.csv | sed 's/\\"/""/g' | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"
0lvr5msh

0lvr5msh2#

我已经在chgithub发布了这个查询。看起来到现在为止,它们只有双引号作为转义字符。
https://github.com/clickhouse/clickhouse/issues/10624

相关问题