嗨,我有一堆CSV位于S3中,这是一个通过AWS建立的爬虫程序,这个爬虫构建了大约10个表,因为它扫描了10个文件夹,其中只有一个没有检测到标头。csv的结构和其他的一样。请给我建议?
发布于 2020-05-17 21:11:54
您可以自己创建表,而不是爬行指向s3路径,而是可以基于现有表进行爬行。这是当爬虫没有检测到模式时使用的概念,尤其是列标题。
还要检查skip.header.line.count=1
是否是自动添加的,如果不是,可以手动添加,并将模式更新到所需的正确模式。在您的爬虫的后续运行中,您可以更改属性,以便它将忽略架构更新,并且只对表执行分区更新。
发布于 2020-05-21 00:45:18
AWs胶爬行器基于多个规则解释头。如果您的文件中的第一行满足这些规则,爬虫将不会将第一行检测为标题,您将需要手动执行该操作。这是一个非常常见的问题,我们在代码中集成了一个修复程序来完成这个任务,这是我们数据管道的一部分。
aws文档摘录
要将
分类为CSV,表架构必须至少有两列和两行数据。CSV分类器使用许多启发式方法来确定一个标头是否存在于给定文件中。如果分类器无法从第一行数据中确定标题,列标题将显示为col1、col2、col3等。内置CSV分类器通过评估文件的下列特征来确定是否推断标题:
潜在标题中的每一列都以字符串数据类型解析。
除了最后一列之外,潜在标题中的每一列的内容都少于150个字符。为了允许尾随分隔符,最后一列可以在整个文件中为空。
潜在标题中的每一列都必须满足AWS Glue regex对列名的要求。
标题行必须与数据行有足够的不同。要确定这一点,一个或多个行必须解析为字符串类型以外的其他行。如果所有列都是STRING类型,那么第一行数据与随后的行没有足够的不同,不能用作标题。。
发布于 2020-10-15 19:19:29
您可以在爬虫上使用自定义分类器来解决这个问题:https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html
通常,在分类器选项列标题部分中选择有标题将起作用,如果没有,则可能需要为此目的在文本框中输入标题列表。
https://stackoverflow.com/questions/61857098
复制相似问题