Сбой ядра Jupyter SAS внутри контейнера Docker
По какой-то причине я не могу запускать записные книжки SAS внутри контейнера Jupyter Docker. Я могу запускать код SAS в записных книжках Python через saspy, но ядро SAS продолжает выдавать мне ошибки.
Я использую образ jupyter / pyspark-notebook:notebook-6.4.2 в качестве основы и подключаюсь к удаленному серверу через IOM. Если я запустил записную книжку Python, например, с
import saspy
%reload_ext saspy.sas_magic
ss = saspy.SASsession(cfgname="xxx")
тогда соединение работает нормально. Иногда время ожидания истекает, но, вероятно, это проблема сервера.
Однако, если я запускаю записную книжку SAS, когда я пытаюсь отправить фрагмент кода, я получаю результат ошибки:
[<class 'TypeError'>, TypeError("Frame 0 ({'shell': [b'f8fd30a1-60bc-4f25-...) does not support the buffer interface."), <traceback object at 0x7fad01e41100>]
Также есть несколько сообщений об ошибках в окне терминала, в котором запущен контейнер:
notebook_1 | [I 17:14:56.181 NotebookApp] Kernel started: 58182c39-9df4-4922-b068-1d6bde76c31a, name: sas
notebook_1 | [IPKernelApp] ERROR | Exception in message handler:
notebook_1 | Traceback (most recent call last):
notebook_1 | File "/opt/conda/lib/python3.9/site-packages/ipykernel/kernelbase.py", line 352, in dispatch_shell
notebook_1 | await result
notebook_1 | File "/opt/conda/lib/python3.9/site-packages/ipykernel/kernelbase.py", line 642, in execute_request
notebook_1 | reply_content = self.do_execute(
notebook_1 | File "/opt/conda/lib/python3.9/site-packages/metakernel/_metakernel.py", line 397, in do_execute
notebook_1 | retval = self.do_execute_direct(code)
notebook_1 | File "/opt/conda/lib/python3.9/site-packages/sas_kernel/kernel.py", line 213, in do_execute_direct
notebook_1 | res = self.mva.submit(code, prompt=self.promptDict)
notebook_1 | AttributeError: 'NoneType' object has no attribute 'submit'
Файл dockerfile предназначен для использования за корпоративным брандмауэром, поэтому содержит некоторые конфиденциальные записи, что затрудняет воспроизведение воспроизводимого примера. Но суть в следующем:
FROM jupyter/pyspark-notebook:notebook-6.4.2
RUN mamba install -c conda-forge -y nodejs && \
conda clean --all -f -y && \
fix-permissions $CONDA_DIR && \
fix-permissions /home/$NB_USER
RUN pip install jupyterlab_templates &&\
jupyter labextension install jupyterlab_templates && \
jupyter serverextension enable --py jupyterlab_templates
RUN pip install pytest sas_kernel
# Adding SAS config
ADD saspy/*.jar /opt/conda/lib/python3.9/site-packages/saspy/java/
ADD saspy/sascfg_personal.py /opt/conda/lib/python3.9/site-packages/saspy/
Некоторые конкретные версии:
Python 3.9.6
jupyter core : 4.7.1
jupyter-notebook : 6.4.2
qtconsole : not installed
ipython : 7.26.0
ipykernel : 6.0.3
jupyter client : 6.1.12
jupyter lab : 3.1.4
nbconvert : 6.1.0
ipywidgets : 7.6.3
nbformat : 5.1.3
traitlets : 5.0.5
sas-kernel 2.4.11
saspy 3.7.5
Как я могу это исправить?