如何在Presto/AWS Athena中从数据行中删除换行符?

9

我正在Athena(Presto SAS)上查询一些表,然后下载生成的CSV文件以在本地使用。打开文件后,我发现数据包含换行符,但在AWS界面上并未出现,只有在CSV中才会出现,需要将其去除。尝试使用函数replace(string, search, replace) → varchar来跳过换行符,用\\n替换\n,但没有成功:

SELECT
    p.recvepoch, replace(p.description, '\n', '\\n') AS description
FROM
    product p
LIMIT 1000

如何实现这一点?
1个回答

13
问题在于底层表格数据实际上并不包含任何\n,而是由char(10)表示的实际换行符。我能够使用replace函数并将其作为参数来实现预期的行为:
SELECT
    p.recvepoch, replace(p.description, chr(10), '\n') AS description
FROM
    product p
LIMIT 1000

1
另外,如果需要使用制表符实现相同的行为,则也需要将 char(9) 替换为 \t - cristianoms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接