【发布时间】:2021-11-01 18:42:34
【问题描述】:
我正在尝试在 jupyter 笔记本中使用 DuckDB 来访问和查询 s3 中保存的一些 parquet 文件,但似乎无法使其正常工作。从过去的经验来看,我觉得我需要分配适当的文件系统,但我不确定如何/在哪里这样做。
以下代码引发错误:RuntimeError: IO Error: No files found that match the pattern "s3://<bucket>/<file>.parquet"
import boto3
import duckdb
s3 = boto3.resource('s3')
client=boto3.client("s3")
con = duckdb.connect(database=':memory:', read_only=False)
con.execute("""
SET s3_region='-----';
SET s3_access_key_id='-----';
SET s3_secret_access_key='-----';
""")
out = con.execute(f"select * from parquet_scan('s3://<bucket>/<file>.parquet') limit 10;").fetchall()
如果可以的话,我想使用 pandas read_sql 功能,但放置此代码以避免增加问题的复杂性。
我很困惑,因为这段代码有效:
import pandas as pd
import boto3
s3 = boto3.resource('s3')
client=boto3.client("s3")
df = pd.read_parquet("s3://<bucket>/<file>.parquet")
【问题讨论】:
-
DuckDB 似乎不包括它的“httpfs”(用于 http 和 s3)extension on Python。
标签: python pandas amazon-s3 duckdb