Python 根据特定的列过滤器条件从s3桶中拾取s3拼花文件

Python 根据特定的列过滤器条件从s3桶中拾取s3拼花文件,python,apache-spark,amazon-s3,pyspark,parquet,Python,Apache Spark,Amazon S3,Pyspark,Parquet,我需要根据特定的列过滤条件从s3 bucket中选择s3拼花文件列表 文件结构:s3:bucket/folder/file.parquet{文件夹内多个parquet文件} 文件包含id、名称、地址、zipcode、deptno、transactiontime等信息 deptno=1,2,3,4..etc(int) transactiontime=“2019-10-24T21:14:39.503Z”,“2020-01-10T00:00:00.000Z”。。etc(字符串) 现在我想根据条件dep

我需要根据特定的列过滤条件从s3 bucket中选择s3拼花文件列表

文件结构:s3:bucket/folder/file.parquet{文件夹内多个parquet文件}

文件包含id、名称、地址、zipcode、deptno、transactiontime等信息

deptno=1,2,3,4..etc(int)

transactiontime=“2019-10-24T21:14:39.503Z”,“2020-01-10T00:00:00.000Z”。。etc(字符串)

现在我想根据条件deptno,transactiontime(假设deptno=2,transactiontime=“2019-10-24T21:14:39.503Z”)从桶中收集拼花地板文件列表

我们如何才能做到这一点,并感谢任何建议。

AWS是我们的首选工具。你需要的是雅典娜中的
WHERE
子句。这个问题涉及面很广,所以我无法提供任何具体的解决方案。这是一个可以回答你问题的答案

第一步是用S3设置Athena。这个过程很好

如果您想要查询的Python实现,那么这就是您想要的。准确地说,您需要以下方法:

  • :运行查询中包含的SQL查询语句
  • :如果您有权访问运行查询的工作组,则返回有关查询单次执行的信息。每次执行查询时,有关查询执行的信息都以唯一ID保存
  • :从Amazon S3中的Athena查询结果位置流式传输QueryExecutionId指定的单个查询执行的结果

通过AWS Athena运行查询是一种选择。您还可以使用AWS胶水爬虫在Athena中设置表。在此之后,您将能够针对表编写SQL,并根据需要筛选列条件。Athena查询中的“$path”关键字将返回结果的文件名