我想使用Polar来读取存储在S3上的拼图文件.我在AWS Lambda中运行我的代码.
在使用boto3时,我会在全局作用域中创建一个客户端,以便 for each 调用重用该连接(例如, for each Lambda冷启动创建一个客户端,但不是 for each 调用创建一个客户端):
client - boto3.client("s3")
def handler(event, context):
# Use the client here, ensuring the connection already exist
Polars文档说,Polars可以通过查看我正在阅读的文件的位置为我连接到S3:
df = pl.read_parquet("s3://path/to/file.parquet")
但是,如果我将其放入处理程序中,我假设会 for each Lambda调用重新创建连接.我真的希望能够将连接传递给read_parquet
(或scan_parquet
,或其他IO方法),如:
df = pl.read_parquet("s3://path/to/file.parquet", connection_options={"aws": {"client": client}})
我对这些文档的解读是,client
配置仅仅是它连接的how,而不是客户端对象.
如果我错了,我可以传递一个客户端,它应该是什么类型的对象?我假设连接池在这里是有用的,或者是底层API在某种程度上为我做了这件事,这是错误的吗?