在 EMR 上通过 Bootstrap Actions for PySpark 安装 Python 包

Aja*_*rma 5 amazon-s3 amazon-web-services emr apache-spark pyspark

我遇到了一个让我发疯的问题,部分原因是它太简单了。

所以我有一个 ETL 工作,我想在 EMR 上使用 pySpark 执行。问题是我需要安装一些软件包,例如:numpy、py-stringmatching 等,而且我似乎无法在运行作业之前预先安装这些软件包。

这就是我所在的地方:

设置 ec2 实例,s3 存储桶,使用 AWS 上的 UI 成功启动了 Spark 集群。我尝试使用下面的 shell 脚本通过“引导操作”安装东西,然后通过“步骤”运行 spark 应用程序,脚本如下。他们都住在 S3 上,我只是让集群指向目录。

boostrap_actions.sh

#!/bin/bash -xe

sudo pip install -U py-stringmatching
Run Code Online (Sandbox Code Playgroud)

check_numpy.py

import numpy as np
Run Code Online (Sandbox Code Playgroud)

...它在将 check_numpy.py 作为“步骤”运行时失败。如果您对此有所了解或可以指出我正确的方向,请 lmk。

小智 0

您是否尝试过使用 .sh 文件引导集群:

sudo pip3 install pandas
Run Code Online (Sandbox Code Playgroud)

这对我有用!

但我确保了解集群在 master 上使用的which python内容which pip