我正在尝试使用 awswrangler 将存储在 S3 中的任意大的 parquet 文件读入 pandas 数据帧,但将我的查询限制为第一个N
由于文件的大小(以及我较差的带宽)而导致的行。
我不知道如何做到这一点,或者是否可以在不搬迁的情况下实现。
我可以使用chunked=INTEGER
并在读取第一个块后中止,如果是这样怎么办?
我使用 pyarrow 遇到了这个不完整的解决方案(最后 N 行;)) -读取 S3 parquet 表的最后 N 行- 但是基于时间的过滤器对我来说并不理想,并且接受的解决方案甚至没有到达故事的结尾(尽管有帮助)。
或者是否有另一种方法无需先下载文件(我现在可能已经完成了)?
Thanks!
您可以使用 awswrangler 来做到这一点S3选择。例如:
import awswrangler as wr
df = wr.s3.select_query(
sql="SELECT * FROM s3object s limit 5",
path="s3://amazon-reviews-pds/parquet/product_category=Gift_Card/part-00000-495c48e6-96d6-4650-aa65-3c36a3516ddd.c000.snappy.parquet",
input_serialization="Parquet",
input_serialization_params={},
use_threads=True,
)
只会从 S3 对象返回 5 行。
这对于其他读取方法来说是不可能的,因为在读取之前必须将整个对象拉到本地。使用 S3 select,过滤是在服务器端完成的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)