我的主笔记本在数据库中,我正在运行我的基本代码集。现在,我必须总是通过我的函数传递“spark”和“dbutils”才能让函数正常工作。
主记录本代码:
from subfolder import awesome
awesome.somefunction(spark,dbutils,parameterC)
www.example.com文件中的代码awesome.py如下所示:(这位于一个名为“子文件夹”的文件夹中,该文件夹比主笔记本深一级,它还伴随着一个init python文件)
def somefunction(spark,dbutils,parameterC):
# used spark in this function
# used dbutils in this function
# used parameterC in this function
# create a spark view at the end
# return None
return None
如果我从函数中删除了spark和dbutils,我会发现没有找到“spark”或“dbutils”模块。
我怎样才能得到它,这样我就不必自动将spark和dbutils传递到我的.py文件中?
1条答案
按热度按时间zlhcx6iw1#
在Databricks上,
spark
和dbutils
只会自动注入到主入口点-您的笔记本电脑中,但不会传播到Python模块中。使用spark
解决方案很简单,只需使用SparkSession
类的getActiveSession
函数(如SparkSession.getActiveSession()
),但是您需要继续显式传递dbutils
,直到您不将dbutils
抽象为某个函数,如本答案中所述。