我能够使用fastparquet将镶木地板文件写入S3 . 这有点棘手,但是当我意识到将所有依赖项组合在一起时,我必须使用与Lambda正在使用的完全相同的Linux .
我是这样做的:
1.使用与Lambda一起使用的Amazon Linux映像启动EC2实例
注意:您可能需要安装许多软件包并将python版本更改为3.6,因为此Linux不适用于开发 . 这是我寻找包的方式:
sudo yum list | grep python3
我安装了:
python36.x86_64
python36-devel.x86_64
python36-libs.x86_64
python36-pip.noarch
python36-setuptools.noarch
python36-tools.x86_64
2.使用此处的说明构建一个zip文件,其中包含我的脚本将使用的所有依赖项,并将它们全部转储到一个文件夹中,并使用以下命令压缩它们:
mkdir parquet
cd parquet
pip install -t . fastparquet
pip install -t . (any other dependencies)
copy my python file in this folder
zip and upload into Lambda
注意:我必须解决一些限制:Lambda不允许您上传更大的50M拉链并解压缩> 260M . 如果有人知道更好的方法来获取Lambda的依赖,请分享 .