1

我有如下示例数据:

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" 选项来显示换行符 ($) 和 endofline (^M) 字符。

在这里处理换行符AWS Suggested OpenCSVSerde。我尝试使用 OPENCSVSerde 序列化escapeChar=\\, quoteChar=\", seperatorChar=,尽管如此,它将数据显示为 5 行,而我需要 3 行。当我在 Athena 中查询时,id=101 只显示第一行,而其余部分则缺失:

id,log,code,sequence
101,sample- 4/52

有关如何处理 csv 文件列中的多行字符的任何提示或示例?

我正在探索自定义分类器,但还没有运气。

4

1 回答 1

1

根据此文档https://docs.aws.amazon.com/athena/latest/ug/csv.html opencsvserde 不支持换行符。

我看到您正在尝试将某种日志放在那里。您的选择是:

  • 清理日志以不包括换行符。或者,

  • 使用正则表达式,如果您的日志格式不断变化,这将无用。或者,

  • 如果两者都不是一个选项,您可以将您的格式从 csv 更改为 parquet 或其他没有换行问题的格式

于 2019-03-07T17:40:56.297 回答