我正在尝试在 jupyter 笔记本中使用 DuckDB 来访问和查询 s3 中保存的一些镶木地板文件,但似乎无法使其正常工作。从过去的经验来看,我觉得我需要分配适当的文件系统,但我不确定如何/在哪里这样做。
下面的代码引发了错误: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()
如果可以的话,我想使用 pandasread_sql
功能,但放置此代码以避免增加问题的复杂性。
我很困惑,因为这段代码有效:
import pandas as pd
import boto3
s3 = boto3.resource('s3')
client=boto3.client("s3")
df = pd.read_parquet("s3://<bucket>/<file>.parquet")