【问题标题】:How do I Import a class from library in databricks?如何从数据块中的库中导入类?
【发布时间】:2019-04-21 09:07:45
【问题描述】:

我正在使用 azure 中的数据块来完成一些机器学习工作,并且我正在尝试从特定库中导入一个类,但它的工作方式似乎与我习惯的不同。 (我一般在jupyter notebook里写python代码)

我正在尝试在 databricks 中的 python 笔记本中运行以下内容

    from statsmodels.tsa.holtwinters import ExponentialSmoothing

我可以单独导入statsmodels,但是尝试获取这个特定的类给了我:

ImportError: No module named 'statsmodels.tsa.holtwinters' 

可以直接在jupyter中导入类,我习惯在其中编写python。而且,即使我已经导入了statsmodels,我也不能直接调用实际代码中的任何类。

为了使用库中的特定类,我必须在 databricks 中做些什么特别的事情吗?

【问题讨论】:

  • 您是否在主页上“常见任务”下的“导入库”按钮下添加了它...这就是我在 databricks 社区版上添加库的方式。

标签: python pyspark python-import databricks azure-databricks


【解决方案1】:

起初,我尝试通过左侧工具栏Clusters -> Interactive Clusters -> Libraries -> Install New -> PyPI 成功安装statsmodels,但遇到了与您相同的问题。

然后我重启了我的集群并创建了一个笔记本通过%sh安装它,如下图。

%sh
/databricks/python/bin/pip install -U statsmodels

它没有任何问题。

注意:这是安装的临时解决方案。如果重启集群,statsmodels安装的模块就会消失。所以你必须先运行命令安装statsmodels,然后重启附加的集群。

【讨论】:

  • 这行得通!你能帮我理解这里发生了什么吗? %sh 在做什么?
  • @justin.cherveny %sh 行使单元格中的以下代码在 Linux shell 中运行,而不是在 Python 解释器中默认运行。
【解决方案2】:

似乎几乎没有记录,但请注意,可以将笔记本作为库加载。

将您的图书馆笔记本命名为 "mylib"

def foobar():
    print("woohoo")

如果你在另一个笔记本中执行它(假设它在同一目录中)

%run ./mylib

您可以访问它的功能:

foobar()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 2015-03-20
    • 2019-10-27
    • 2011-04-04
    • 2016-09-10
    • 2016-11-08
    • 2011-01-11
    相关资源
    最近更新 更多