我有一个parquet数据集存储在s3中,我想读取它以对分区字段应用过滤器,特别是唯一的。我尝试如下,但是唯一的函数不能应用
这是我的尝试:
query_fecha_dato = "{0}fecha_dato={1}/".format(param.delivery["output_path"], fecha_dato_formato)
print(query_fecha_dato)
df_fecha_datos = wr.s3.read_parquet(path=query_fecha_dato,dataset=True,filters=[('fecha_dato','unique',fecha_dato)])
print(df_fecha_datos.head(5))
它应该只显示分区列"fecha_dato",但是它显示以下内容:
nro_de_pedido nro_de_negocio ... nrootchex ingest_date
0 2006968078 635922336 ... -1 2022-08-06
1 2006968079 635912195 ... -1 2022-08-06
2 2006968080 635921361 ... -1 2022-08-06
3 2006968081 635922792 ... -1 2022-08-06
4 2006968082 635922368 ... -1 2022-08-06
我只想获得分区列"fecha_dato"没有重复的
大家好,欢迎来到stackoverflow。:)
有一个最小的,可重复的例子来测试代码真的很有帮助,所以我可以测试我的答案是否真的有效。
我是awswranger的新手,但根据文档,我找不到filters
作为选项。
看起来只选择fecha_dato
,您需要指定columns=['fecha_dato']
。此外,我在awswangler中没有看到一个独特的选项,但是您可以在
drop_duplicates
。df_fecha_datos = wr.s3.read_parquet(path=query_fecha_dato,dataset=True,colums=['fecha_dato']).drop_duplicates()
应该可以工作-至少只要您不从s3返回多个数据帧。
这将下载fecha_dato
中的所有值,并且只在本地删除重复的值,但是我不知道如何在不在AWS中部署一些计算资源的情况下节省此带宽。