Python awswrangler.s3.read_parquet忽略分区过滤器参数

Python awswrangler.s3.read_parquet忽略分区过滤器参数,python,amazon-s3,awswrangler,Python,Amazon S3,Awswrangler,wr.s3.read\u parquet()中的partition\u filter参数无法筛选s3上的分区拼花地板数据集。下面是一个可复制的示例(可能需要正确配置的boto3\u会话参数): 数据集设置: import pandas as pd import awswrangler as wr import boto3 s3_path = "s3://bucket-name/folder" df = pd.DataFrame({"val": [1,3

wr.s3.read\u parquet()
中的
partition\u filter
参数无法筛选s3上的分区拼花地板数据集。下面是一个可复制的示例(可能需要正确配置的
boto3\u会话
参数):

数据集设置:

import pandas as pd
import awswrangler as wr
import boto3

s3_path = "s3://bucket-name/folder"

df = pd.DataFrame({"val": [1,3,2,5], "date": ['2021-04-01','2021-04-01','2021-04-02','2021-04-03']})

wr.s3.to_parquet(
    df = df,
    path = s3_path,
    dataset = True,
    partition_cols = ['date']
)
#> {'paths': ['s3://bucket-name/folder/date=2021-04-01/38399541e6fe4fa7866181479dd28e8e.snappy.parquet',
#>   's3://bucket-name/folder/date=2021-04-02/0a556212b5f941c7aa3c3775d2387419.snappy.parquet',
#>   's3://bucket-name/folder/date=2021-04-03/cb71397bea104787a50a90b078d564bd.snappy.parquet'],
#>  'partitions_values': {'s3://aardvark-gdelt/headlines/date=2021-04-01/': ['2021-04-01'],
#>   's3://bucket-name/folder/date=2021-04-02/': ['2021-04-02'],
#>   's3://bucket-name/folder/date=2021-04-03/': ['2021-04-03']}}
然后,可以在控制台中查看S3数据:

但使用日期过滤器读入返回4条记录:

wr.s3.read_parquet(path = s3_path,
                   partition_filter = lambda x: x["date"] >= "2021-04-02"
)
#>      val
#> 0    1
#> 1    3
#> 2    2
#> 3    5
实际上,sub'ing
lambda x:False
仍然返回4行。我错过了什么?这是来自:

分区过滤器(可选[可调用[[Dict[str,str]],bool]]) 要应用于分区列的回调函数筛选器(下拉 过滤器)。此函数必须接收单个参数(Dict[str,str]) 其中键是分区名称,值是分区值。 分区值将始终是从S3提取的字符串。这 函数必须返回bool,True读取分区,False读取分区 别理它。如果dataset=False,则忽略。例如λx:如果x[“年”] ==“2020”和x[“月”]==“1”否则为假


我注意到返回的数据帧不包括上传数据中的分区“日期”列-在文档中看不到对此删除的引用,也不清楚是否相关。

从文档中,如果dataset=False,则忽略
。添加
dataset=True
作为
read\u parquet
调用的参数将完成github中提出的问题