Pyspark - ImportError:无法从“pyspark”导入名称“SparkContext”

Posted

技术标签:

【中文标题】Pyspark - ImportError:无法从“pyspark”导入名称“SparkContext”【英文标题】:Pyspark - ImportError: cannot import name 'SparkContext' from 'pyspark' 【发布时间】:2020-02-04 23:59:08 【问题描述】:

我在使用 python 和 pyspark 开发数据管道时遇到以下错误。

PS C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data> python test.py Traceback(最近一次调用最后):文件“test.py”, 第 1 行,在 从 pyspark.conf 导入 SparkConf 文件“C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark__init__.py”, 第 51 行,在 从 pyspark.context 导入 SparkContext 文件“C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark\context.py”, 第 43 行,在 从 pyspark.profiler 导入 ProfilerCollector,BasicProfiler 文件 "C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark\profiler.py", 第 18 行,在 导入 cProfile 文件 "C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\cProfile.py", 第 10 行,在 将配置文件导入为 _pyprofile 文件 "C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data\profile.py", 第 2 行,在 从 awsglue.context 导入 GlueContext 文件“C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data\awsglue__init__.py”, 第 13 行,在 从 .dynamicframe 导入 DynamicFrame 文件 "C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data\awsglue\dynamicframe.py", 第 20 行,在 从 pyspark.sql.dataframe 导入 DataFrame 文件“C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark\sql__init__.py”, 第 45 行,在 从 pyspark.sql.types 导入行文件“C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark\sql\types.py”, 第 36 行,在 从 pyspark 导入 SparkContext ImportError:无法从“pyspark”导入名称“SparkContext” (C:\Users\folder\AppData\Local\Programs\Python\Python37\lib\site-packages\pyspark__init__.py)

代码真的很简单,只能试一试:

from pyspark.conf import SparkConf

print("hello world")

Java、spark、python 和 pyspark 正确安装如下:

> PS
> C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data>
> java -version java version "1.8.0_241" Java(TM) SE Runtime Environment
> (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build
> 25.241-b07, mixed mode) PS C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data>


> PS
> C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data> python --version 
> Python 3.7.6


> PS
> C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data>
> spark-shell --version Welcome to
>       ____              __
>      / __/__  ___ _____/ /__
>     _\ \/ _ \/ _ `/ __/  '_/    /___/ .__/\_,_/_/ /_/\_\   version 2.4.3
>       /_/
> 
> Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM,
> 1.8.0_231 Branch heads/v2.4.3 Compiled by user vaviliv on 2019-09-17T17:31:05Z Revision c3e32bf06c35ba2580d46150923abfa795b4446a
> Url https://github.com/apache/spark Type --help for more information.


> PS
> C:\Users\folder\Documents\folder\projects\code\etl-gd\src\jobs\greater-data>
> pyspark --version
>     Welcome to
>           ____              __
>          / __/__  ___ _____/ /__
>         _\ \/ _ \/ _ `/ __/  '_/
>        /___/ .__/\_,_/_/ /_/\_\   version 2.4.3
>           /_/
>     
>     Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_231
>     Branch heads/v2.4.3
>     Compiled by user vaviliv on 2019-09-17T17:31:05Z
>     Revision c3e32bf06c35ba2580d46150923abfa795b4446a
>     Url https://github.com/apache/spark
>     Type --help for more information.

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

我明白了。我创建了一个独立的虚拟环境,因为我的电脑中有一些版本的 python 和 spark。

【讨论】:

以上是关于Pyspark - ImportError:无法从“pyspark”导入名称“SparkContext”的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark (spark 1.6.x) ImportError: 无法导入名称 Py4JJavaError

pyspark:ImportError:没有名为 numpy 的模块

PySpark worker在安装时无法导入包

from pyspark.sql.snappy import SnappyContext - ImportError: No module named snappy

无法导入 pyspark 统计模块

ImportError:无法在 IPython 中导入名称“SparkContext”