【问题标题】:AWS Athena found no records on csv fileAWS Athena 在 csv 文件中找不到任何记录
【发布时间】:2019-04-04 13:34:27
【问题描述】:

我在 s3 中有 2Gb csv 文件(管道分隔),

在其上运行胶水爬虫,创建新表。

从 aws-athena 运行查询时,它发现零记录(即使它正确返回列) 没有应用任何分区,只是尽可能默认运行爬虫。 有什么建议吗?

注意 - 所有操作都使用 aws consol

【问题讨论】:

  • 你在爬虫中提供的S3路径是什么?
  • s3://my-bucket-test/short_inputs/ 而子文件夹中的文件:2019/2/1/file.txt
  • 这是一个老问题,无论如何,也许这个注释会有所帮助。我们遇到了特定 csv 数据源和默认爬虫放入 Glue 表属性 (org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe) 的默认序列化库的问题。在我们的例子中,Athena 查询的记录集报告了一些使用这个序列化库的数据源的空内容(不是零记录,而是实际上是空记录)。有帮助的是(在表属性中)将序列化库更改为org.apache.hadoop.hive.serde2.OpenCSVSerde

标签: amazon-web-services csv amazon-athena aws-glue


【解决方案1】:

查询没有返回数据的可能性是

如果您在添加时已在存储桶名称中指定了文件名 爬虫。

Let's say your bucket name is testbucket and the csv file is test.csv, 
so while adding the crawler you need to specify your bucket name as s3://testbucket/ 
and not s3://testbucket/test.csv

此外,如果字段用竖线分隔,则它们将仅显示在单列下,因为文件扩展名为 .csv(逗号分隔)。所以理想情况下,字段应该用逗号分隔,以便获取正确的输出。

因此,请尝试如上所述指定存储桶名称。希望这会返回数据。

如果数据仍未返回,请尝试创建新的爬虫,并且在创建新爬虫时不要使用现有的 IAM 角色。创建一个新角色。有时,IAM 策略在获取数据时会出现故障。

【讨论】:

  • 10x,试图放置文件夹,而不是文件,没有帮助。文件是管道分隔的,我怀疑文件解析存在一些问题,即使爬虫声称成功,并识别了所有列名和行数。只有雅典没有找到记录..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2015-11-15
  • 2023-01-31
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多