【发布时间】:2019-11-17 14:17:32
【问题描述】:
我在 JupyterLab 中试图从另一个笔记本中运行一个 PySpark 笔记本,但我不断收到错误
ModuleNotFoundError: No module named 'pyspark'
这里的目的是拥有一个文件来设置配置,例如架构定义和函数,这些配置可以从使用这些定义执行不同任务的各种其他笔记本中调用。在下面的示例中,配置包含架构定义等,数据加载是执行任务的记事本之一的精简版本。
在这种情况下,dataload 记事本必须运行 configuration 记事本来设置用于加载数据的架构。
Configuration.ipynb
# Initialization
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('X').getOrCreate()
和
# environment setup
from pyspark.sql import functions
from pyspark.sql.types import StructType, StructField
from pyspark.sql.types import DoubleType, IntegerType, StringType, DateType
ex_schema = StructType([
StructField("graph_sid",StringType()),
.....
StructField("pack_qty", DoubleType())
])
DataLoad.ipynb
# Initialization
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('X').getOrCreate()
%run Configuration.ipynb
我收到以下错误:-
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
~/work/Configuration_FL.ipynb in <module>
1 # Initialization
----> 2 from pyspark.sql import SparkSession
3 spark = SparkSession.builder.appName('X').getOrCreate()
ModuleNotFoundError: No module named 'pyspark'
如果我在一个笔记本中运行所有代码,效果会很好。
我在配置文件中尝试了不同的设置,例如删除#Initialization 部分,这似乎会产生不同的错误。
在 napoleon_borntoparty 的建议下,我尝试在同一个内核中打开两者。这使我可以从配置记事本中的数据加载中访问定义,但反之则不行。
【问题讨论】:
标签: pyspark jupyter-notebook jupyter-lab