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

标签 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 . 我尝试将 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/

相关文章:

amazon-web-services - 使用 Apache Airflow 编辑存储在 AWS S3 中的 CSV,无需下载

amazon-web-services - gitlab CI:加载 key 错误:格式无效

bash - Elastic Beanstalk 部署 Errno 2 没有此类文件/目录

amazon-web-services - AWS Quicksight 在另一个区域看不到 Athena DB

amazon-web-services - AWS Glue 动态框架 - 如果没有数据,则没有列标题

java - 如何在 aws ec2 服务器上运行 selenium 测试

json - 在 Athena 中查询可选嵌套 JSON 字段

amazon-web-services - 分层分区在 AWS Athena/S3 中有效吗?

amazon-web-services - aws glue rds增量加载

amazon-web-services - 如何使用 AWS Glue ETL 工具从 S3 读取文件名