我正在使用Python和Jupyter Notebook,尝试从AWS S3存储桶中读取Parquet文件,并将它们转换为一个Pandas数据帧。
存储桶和文件夹的排列方式如下:
The bucket name: mybucket
First Folder: 123
Second Folder: Parquets.parquet
file1.snappy.parquet
file2.snappy.parquet
....
我正在使用以下代码获取完整路径:
bucket = s3.Bucket(name='mybucket')
keys =[]
for key in bucket.objects.all():
keys.append("s3://mybucket/"+key.key)
然后可以通过以下方式读取这些数据:
count = 0
keys = keys[2:]
for obj in bucket.objects.all():
subsrc = obj.Object()
key = obj.key
path = keys[count]
obj_df = pd.read_parquet(path)
df_list.append(obj_df)
count +=1
df = pd.concat(df_list)
但是那给了我:
PermissionError: Forbidden
指向行'obj_df = pd.read_parquet(path)',我知道我有完全的s3访问权限,所以那不应该是问题。非常感谢!
aws s3 ls <PATH>
列出密钥,然后使用aws s3 cp <PATH> .
将对象下载到本地。 - Jesse Vogt<PATH>
? - Jesse Vogt