gpt4 book ai didi

pandas - 如何从 S3 直接读取 GZIP csv 到 pandas 数据帧

转载 作者:行者123 更新时间:2023-12-04 12:40:04 28 4
gpt4 key购买 nike

我正在编写一个气流作业以从 s3 读取压缩文件。

首先我得到对象的 key ,它工作正常

obj = self.s3_hook.get_key(key, bucket_name=self.s3_bucket)

obj 看起来不错,像这样:

path/to/file/data_1.csv.gz

现在我想将内容读入 pandas 数据框。我已经尝试了很多东西,但这是我当前的迭代:

import pandas as pd
df = pd.read_csv(obj['Body'], compression='gzip')

这会返回以下错误:

TypeError: 's3.Object' object is not subscriptable

我做错了什么?我觉得我需要用 StringIO 或 BytesIO 做一些事情......我能够以字节的形式读取它,但我认为有一种更直接的方式来获取数据帧

以防万一,当我解压缩并以 CSV 格式打开时,一行数据如下所示:

 9671211|ddc9979d5ff90a4714fec7290657c90f|2138|2018-01-30 00:00:12|2018-01-30 00:00:16.069048|42b32863522dbe52e963034bb0aa68b6|1909705|8803795|collect|\\N|0||0||0| 

最佳答案

想通了:

obj = self.s3_hook.get_key(key, bucket_name=self.s3_bucket)
df = pd.read_csv(obj.get()['Body'], compression='gzip', header = None, sep = '|')

关于pandas - 如何从 S3 直接读取 GZIP csv 到 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275304/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com