pandas 如何使用www.example.com_parquet对parquet文件的分区列应用唯一过滤器wr.s3.read?

myzjeezk  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(105)

我有一个存储在s3中的parquet数据集,我想读取它来对分区字段(特别是unique)应用过滤器。我尝试了以下方法,但是unique函数无法应用
下面是我的尝试:

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

kupeojn6

kupeojn61#

大家好,欢迎来到stackoverflow。:)
有一个minimal, reproducible examples来测试代码确实很有帮助,这样我就可以测试我的答案是否真的有效。
我是awswranger的新手,但是根据docu,我找不到filters作为选项。
看起来好像只选择了fecha_dato,你需要指定columns=['fecha_dato']。而且我没有看到awswrangler中有一个唯一的选项,但是你可以在以后使用panda drop_duplicates

df_fecha_datos = wr.s3.read_parquet(path=query_fecha_dato,dataset=True,colums=['fecha_dato']).drop_duplicates()

应该工作-至少只要你没有得到多个 Dataframe 从s3回来。
这将下载fecha_dato中的所有值,并且只在本地删除重复的值,但是我不知道如何在不部署AWS中的一些计算资源的情况下保存带宽。

相关问题