我正在编写一个 airflow 任务来从 s3 中读取一个 gzip 文件。
首先,我获取了该对象的 key,这部分工作很顺利。
这会返回以下错误:
首先,我获取了该对象的 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|