小编Pta*_*tah的帖子

使用AWS Lambda(Python 3)读取存储在S3中的Parquet文件

我正在尝试使用AWS Lambda在S3中加载,处理和编写Parquet文件。我的测试/部署过程是:

似乎有两种可能的方法,它们都在docker容器本地工作

  1. 使用s3fs的fastparquet:不幸的是,该软件包的未压缩大小大于256MB,因此我无法使用它更新Lambda代码。
  2. pyarrow与s3fs:我遵循了https://github.com/apache/arrow/pull/916,当使用lambda函数执行时,我得到了:

    • 如果我前缀S3或S3N的URI(如在代码示例):在lambda环境OSError: Passed non-file path: s3://mybucket/path/to/myfile中pyarrow / parquet.py,线848局部我得到IndexError: list index out of range在pyarrow / parquet.py,线714
    • 如果我不使用S3或S3N作为URI的前缀:它可以在本地工作(我可以读取镶木地板数据)。在Lambda环境中,我OSError: Passed non-file path: s3://mybucket/path/to/myfile在pyarrow / parquet.py的第848行中得到了相同的结果。

我的问题是:

  • 为什么在Docker容器中得到的结果与在Lambda环境中得到的结果不同?
  • 给出URI的正确方法是什么?
  • 是否可以通过AWS Lambda读取S3中的Parquet文件?

谢谢!

python amazon-s3 parquet aws-lambda pyarrow

6
推荐指数
2
解决办法
4389
查看次数

标签 统计

amazon-s3 ×1

aws-lambda ×1

parquet ×1

pyarrow ×1

python ×1