解析在AWS Athena / AWS Glue目录中的一列中包含换行符的csv文件

时间:2019-03-07 05:49:55

标签: amazon-web-services amazon-athena aws-glue-data-catalog

我的数据示例如下:

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。 我尝试对escapeChar=\\, quoteChar=\", seperatorChar=使用OPENCSVSerde序列化, 但是,它将数据显示为5行,而我需要三行。 当我在雅典娜查询时,id = 101仅显示第一行,其余部分丢失:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

我看到您正在尝试在其中放置某种日志。 您的选择是:

  • 清理日志,使其不包含换行符。或者,

  • 使用regexserde,如果您的日志格式不断变化,该功能将不可用。或者,

  • 如果两个选项都不行,您可以将格式从csv更改为镶木地板或其他没有换行符的地方