【发布时间】:2022-03-25 04:25:09
【问题描述】:
我的智慧到此为止......
我有 15 个 csv 文件,这些文件是通过直线查询生成的,例如:
beeline -u CONN_STR --outputformat=dsv -e "SELECT ... " > data.csv
我选择dsv 是因为一些字符串字段包含逗号并且它们没有被引用,这更加破坏了胶水。此外,根据文档,内置的 csv 分类器可以处理管道(并且在大多数情况下,它可以处理)。
无论如何,我将这 15 个 csv 文件上传到一个 s3 存储桶并运行我的爬虫。
一切都很好。其中 14 个。
Glue 能够提取除一个文件之外的每个文件的标题行,将列命名为 col_0、col_1 等,并在我的选择查询中包含标题行。
谁能提供任何关于导致此问题的文件可能有什么不同的见解?
如果有帮助,我感觉此 csv 文件中的某些字段可能在某些时候以 UTF-16 或其他格式编码。我一开始打开的时候,有一些奇怪的“?”字符四处飘荡。
我已经在上面运行了tr -d '\000' 来清理它,但这还不够。
同样,我可以运行的任何线索、建议或实验都会很棒。顺便说一句,我希望爬虫能够做所有事情(即:不需要手动更改架构并关闭更新)。
感谢阅读。
编辑:
感觉这与它有关source:
潜在标题中的每一列都解析为 STRING 数据类型。
除了最后一列,潜在标题中的每一列都包含少于 150 个字符的内容。为了允许尾随分隔符,文件的最后一列可以为空。
潜在标题中的每一列都必须满足列名的 AWS Glue 正则表达式要求。
标题行必须与数据行充分不同。要确定这一点,必须将一个或多个行解析为非 STRING 类型。如果所有列都是 STRING 类型,则第一行数据与后续行的差异不足以用作标题。
【问题讨论】:
-
嘿,你有没有检查你的标题行最后一行是否有空标题?
标签: csv amazon-athena aws-glue