Bab*_*abu 5 pyspark databricks
我试图在 pyspark 中运行以下代码。
dbutils.widgets.text('config', '', 'config')
Run Code Online (Sandbox Code Playgroud)
这是给我一个错误说
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dbutils' is not defined
Run Code Online (Sandbox Code Playgroud)
那么,有什么方法可以通过包含 databricks 包(例如导入)在 pyspark 中运行它?
感谢您的帮助
小智 16
从 databricks Runtime v3.0 开始,上面pprasad009提供的答案不再有效。现在使用以下内容:
def get_dbutils(spark):
dbutils = None
if spark.conf.get("spark.databricks.service.client.enabled") == "true":
from pyspark.dbutils import DBUtils
dbutils = DBUtils(spark)
else:
import IPython
dbutils = IPython.get_ipython().user_ns["dbutils"]
return dbutils
dbutils = get_dbutils(spark)
Run Code Online (Sandbox Code Playgroud)
请参阅:https://learn.microsoft.com/en-gb/azure/databricks/dev-tools/databricks-connect#access-dbutils
如 https://docs.azuredatabricks.net/user-guide/dev-tools/db-connect.html#access-dbutils 中所述
根据您直接在 databricks 服务器上执行代码的位置(例如,使用 databricks notebook 调用您的项目 egg 文件)或使用 databricks-connect 从您的 IDE 中,您应该初始化 dbutils,如下所示。(其中 spark 是您的 SparkSession)
def get_dbutils(spark):
try:
from pyspark.dbutils import DBUtils
dbutils = DBUtils(spark)
except ImportError:
import IPython
dbutils = IPython.get_ipython().user_ns["dbutils"]
return dbutils
dbutils = get_dbutils(spark)
Run Code Online (Sandbox Code Playgroud)
Rit*_*esh -2
我假设您希望代码在 databricks 集群上运行。如果是这样,则无需导入任何包,因为 Databricks 默认情况下包含 dbutils 的所有必需库。
我尝试在 databricks (python/scala) 笔记本上使用它,而不导入任何库,并且工作正常。
| 归档时间: |
|
| 查看次数: |
9696 次 |
| 最近记录: |