pyspark 将delta包导入Synapse笔记本时出错

vhipe2zx  于 2024-01-06  发布在  Spark
关注(0)|答案(1)|浏览(187)

我需要将delta-spark包导入Azure Synapse notebook,但收到错误“ModuleNotFoundError:No module named 'pyspark. errors'”。
安装了这个包(沿着安装pyspark)。从pyspark导入(如pyspark.sql.functions)可以工作,但在pyspark. errors上导入DeltaTable失败。相同的导入在不同的环境(Databases notebook)中使用相同的包版本也可以工作。我尝试使用findspark,但它什么也解决不了(可能是因为我没有导入pyspark的问题,但在pyspark下导入了一些包)。
验证码:

  1. %pip install delta-spark

字符串
输出(选定):

  1. Requirement already satisfied: delta-spark in /nfs4/pyenv-fee9cba1-d59a-44ab-8b9e-957614b27f23/lib/python3.10/site-packages (3.0.0)
  2. Requirement already satisfied: pyspark<3.6.0,>=3.5.0 in /nfs4/pyenv-fee9cba1-d59a-44ab-8b9e-957614b27f23/lib/python3.10/site-packages (from delta-spark) (3.5.0)


验证码:

  1. import pyspark.sql.functions as F
  2. from pyspark.sql import Window
  3. from delta.tables import DeltaTable


输出(选定):

  1. ---------------------------------------------------------------------------
  2. ModuleNotFoundError Traceback (most recent call last)
  3. Cell In [9], line 10
  4. 8 import pyspark.sql.functions as F
  5. 9 from pyspark.sql import Window
  6. ---> 10 from delta.tables import DeltaTable
  7. ...
  8. File ~/cluster-env/env/lib/python3.10/site-packages/delta/exceptions.py:20
  9. 17 from typing import TYPE_CHECKING, Optional
  10. 19 from pyspark import SparkContext
  11. ---> 20 from pyspark.errors.exceptions import captured
  12. 21 from pyspark.errors.exceptions.captured import CapturedException
  13. 22 from pyspark.sql.utils import (
  14. 23 AnalysisException,
  15. 24 IllegalArgumentException,
  16. 25 ParseException
  17. 26 )
  18. ModuleNotFoundError: No module named 'pyspark.errors'


这是Spark池的环境设置:

  1. SPARK_HOME -> /opt/spark
  2. PYTHONPATH -> /opt/spark/python/lib/pyspark.zip<CPS>/opt/spark/python/lib/py4j-0.10.7-src.zip<CPS>/opt/spark/python/lib/pyspark.zip<CPS>/opt/spark/python/lib/py4j-0.10.7-src.zip

8aqjt8rx

8aqjt8rx1#

  1. from delta.tables import DeltaTable

字符串
此命令将在synapse notebook中工作,而无需安装delta-spark软件包。
当我尝试在%pip install delta-spark之后使用from delta.tables import DeltaTable命令时,我得到了相同的错误。
但在安装之前,上面的工作正常。在synapse notebook中的delta包上安装delta-spark可能是导致上述错误的原因。
要使用from delta.tables import DeltaTable,请不要安装delta-spark。您可以直接使用它,如下所示。


的数据
你可以看到,它在没有安装任何软件包的情况下工作正常。

相关问题