1

我正在尝试使用 csvread 从附加的测试文件中读取。该文件在字段之间具有 CTRL-A (\u0001) 作为分隔符。

我使用的语句是

select * from csvread('test.csv','id, name','charset=UTF-8 fieldDelimiter=\u0001');

预期输出:

ID | Name
12 | sandeep

实际输出:

ID | Name
12\u0001sandeep | null

这意味着它没有选择 \u0001 作为分隔符。

CTRL-A(\u0001)在对文件进行 csvread 时如何处理分隔符?

4

1 回答 1

1

你可以使用:

select * from csvread('~/Downloads/test.csv',
stringdecode('id\u0001name'),
stringdecode('charset=UTF-8 fieldSeparator=\u0001'));

您需要使用stringdecode,因为 ANSI-SQL 文本文字不支持 Java 转义序列,例如\u0001. 然后,您使用了 fieldDelimiter 而不是 fieldSeparator(请参阅文档)。

于 2012-10-12T10:51:43.617 回答