我有如下示例数据:
id,log,code,sequence
100,sample <(>&<)> O sample ? PILE UP - 3 sample,20,7^M$
101,sample- 4/52$
sample$
CM,21,7^M$
102,sample AT 3PM,22,4^M$
在第二行 (id=101) 中,日志列有换行符,使一行变成 3 行。 我在 vim 编辑器中启用了“:set list”选项以显示换行符 ($) 和换行符 (^M)。
处理换行符AWS Suggested OpenCSVSerde here .
我尝试将 OPENCSVSerde 序列化与 escapeChar=\\, quoteChar=\", seperatorChar=
,
尽管如此,它将数据显示为 5 行,而我需要三行。
当我在 Athena 中查询时,id=101 仅显示第一行并且缺少其余部分:
id,log,code,sequence
101,sample- 4/52
关于如何处理 csv 文件列中的多行字符的任何提示或示例?
我正在探索自定义分类器,但还没有成功。
最佳答案
根据此文档 https://docs.aws.amazon.com/athena/latest/ug/csv.html opencsvserde 不支持换行符。
我看到您正在尝试将某种日志放在那里。 您的选择是:
清理日志以不包含换行符。或者,
使用 regexserde,如果您的日志格式不断变化,这就没有用了。或者,
如果两者都不是一个选项,您可以将您的格式从 csv 更改为 parquet 或其他不存在换行问题的格式
关于amazon-web-services - 解析在 AWS Athena/AWS Glue 目录中的一列中包含换行符的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55036894/