Привет всем, я пытаюсь запустить существующий скрипт Python (с собственным Python без Spark) непосредственно в бессерверной среде с помощью EMR Studio.
Наша цель — выполнять собственные скрипты Python непосредственно в EMR. бессерверный. Для этого мы создали виртуальную среду Python, упакованную в tar-файл с именем «pyspark_ge.tar.gz», который хранится на S3 вместе со сценариями Python.
Несмотря на наши усилия. , мы столкнулись со следующей ошибкой.
import pyodbc
ImportError: libodbc.so.2: невозможно открыть файл: такого файла или каталога нет
Не могли бы вы помочь нам понять, как мы можем установить переменную среды LD_LIBRARY_PATH в бессерверной среде? или какой-нибудь другой способ сделать это?
Мы также установили свойства искры для настройки --archives для использования файла tar на s3.
Также фрагмент, используемый в файле docker для создания среды Python, упакованной в файл tar, аналогичен приведенному ниже:
FROM --platform=linux/arm64 public.ecr.aws/amazonlinux/amazonlinux:2023- минимальная база AS
RUN dnf install -y gcc python3 python3-devel
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/ bin:$PATH"
#Обновить списки пакетов и установить unixodbc без sudo
RUN dnf install -y unixODBC-devel
ENV LD_LIBRARY_PATH="/usr/lib64:/usr/lib:/usr /local/lib:/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH"
RUN python3 -m pip install --upgrade pip &&
python3 -m pip install
openpyxl==3.1.2
packaging==23.2
pandas==2.1.4
msal==1.27 .0
psycopg2-binary==2.9.9
py4j==0.10.9.7
pyarrow==15.0.2
pyodbc==5.1.0
venv-pack==0.2.0
RUN mkdir /output && venv-pack -o /output/ pyspark_ge.tar.gz
С нуля экспортировать AS
COPY --from=base /output/pyspark_ge.tar.gz / `
Подробнее здесь: https://stackoverflow.com/questions/784 ... odbc-lib-c