aws / aws/amazon-sagemaker-feedback

AWS Sagemaker Studio JupyterLab Space: Glue Pyspark and Ray Kernel Python and pip version mismatch

Open
#57 1 comment 0 reactions 0 assignees View on GitHub
bug jupyterlab
Dominant language
No language data
Stars
10
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### Product Version

- [ ] Amazon SageMaker Studio Classic
- [X] Amazon SageMaker Studio
- [ ] Issue is not related to SageMaker Studio

### Issue Description

It looks like there is a discrepancy between the Python version and the pip-installed packages in my Glue Pyspark and Ray kernel in my AWS Sagemaker Studio JupyterLab Space. I first noticed the issue when I was trying to import IPython, by which I received a ModuleNotFound Error, but if I did !pip list | grep ipython I get ipython 8.20.0. I also did !ipython --version which gives 8.20.0.

### Expected Behavior

I would expect that all the packages listed by `!pip list` is available for import, but it is not. Installing packages with `!pip install` and attempting an import also does not work.

### Observed Behavior

Upon further investigation, I did the following.

### 1. With the Glue Pyspark and Ray kernel

```
import sys
print(sys.path)
```
which gives

`['/tmp', '/tmp/spark-7a070785-711d-4791-9ed3-631d12bc29a0/userFiles-298f6845-dc16-4a6c-95e2-0245bbc35529', '/opt/amazon/spark/python/lib/pyspark.zip', '/opt/amazon/spark/python/lib/py4j-0.10.9-src.zip', '/opt/amazon/lib/python3.6/site-packages', '/usr/lib64/python37.zip', '/usr/lib64/python3.7', '/usr/lib64/python3.7/lib-dynload', '/home/spark/.local/lib/python3.7/site-packages', '/usr/lib64/python3.7/site-packages', '/usr/lib/python3.7/site-packages']`

`!python --version` however gives `3.10.13`

I also did `pandas.__version__` which gives `1.3.2`, but `!pip list | grep pandas` gives

```
pandas 2.1.4
pandas-stubs 2.1.4.231227
```

### 2. With the standard Python 3 (ipykernel)

```
import sys
print(sys.path)
```
which gives

`['/home/sagemaker-user', '/opt/conda/lib/python310.zip', '/opt/conda/lib/python3.10', '/opt/conda/lib/python3.10/lib-dynload', '', '/opt/conda/lib/python3.10/site-packages']`

and `!python --version` now gives `3.10.13`, which is consistent with `sys.path`

I redid `pandas.__version__` which now gives `2.1.4`, while `!pip list | grep pandas` gives

```
pandas 2.1.4
pandas-stubs 2.1.4.231227
```
which is consistent.

### 3. Conclusion

It therefore seems I have an issue with the Glue Pyspark and Ray kernel where the Python version in the kernel is pointing to some other installation than the one recognized by pip, and therefore many of the pip-installed packages are not found.

I did find a similar question posted here [Conflicting Python versions in SageMaker Studio notebook with Python 3.8 kernel](https://stackoverflow.com/questions/70486162/conflicting-python-versions-in-sagemaker-studio-notebook-with-python-3-8-kernel) but the accepted answer isn't really helping me.

Any assistance is greatly appreciated. Am I missing something simple here or has anyone else come across such an issue with the Glue Pyspark and Ray kernel?

### Product Category

JupyterLab

### Feedback Category

Configuration and Setup

### Other Details

Original question posted here, also by me.

https://stackoverflow.com/questions/78087104/aws-sagemaker-studio-jupyterlab-space-glue-pyspark-and-ray-kernel-python-and-pi

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported commands in the Glue Pyspark and Ray kernel: compare sys.path, python --version, pip list, and imported package versions with the standard Python 3 kernel. Done means the kernel's Python environment and pip-installed packages agree and packages such as IPython and pandas can be imported as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, jupyter-notebook, python, spark
Domain
cloud, data-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.