Databricks (Spark):.egg 依赖项未自动安装?

Posted

技术标签:

【中文标题】Databricks (Spark):.egg 依赖项未自动安装?【英文标题】:Databricks (Spark): .egg dependencies not installed automatically? 【发布时间】:2015-11-14 03:40:55 【问题描述】:

我有一个本地创建的 .egg 包,它依赖于 boto==2.38.0. 我使用 setuptools 来创建构建分发。一切都在我自己的本地环境中运行,因为它正确地从PiP 获取boto。但是在databricks 上,当我将库附加到集群时,它不会自动获取依赖项。

我真的挣扎了几天,试图在加载到数据块时自动安装依赖项,我使用 setuptools; 'install_requires=['boto==2.38.0']' 是相关字段。

当我在databricks 服务器上直接从PyPi 安装boto(因此不依赖install_requires 字段正常工作)然后调用我自己的.egg,它确实认识到boto是一个包,但它不识别它的任何模块(因为它不是在我自己的 .egg 的命名空间中导入的???)。所以我无法让我的.egg 工作。如果这个问题在没有任何解决方案的情况下仍然存在,我认为这对于databricks 用户来说是一个非常大的问题。当然应该有解决方案...

谢谢!

【问题讨论】:

Loek,你确定解决方案了吗? @JohnA.Ramey 我没有,但我也没有再处理这个问题了。我记得 databricks 团队告诉我他们正在解决这个问题。我假设您目前遇到了同样的问题?很抱歉听到这个消息。当你自己找到解决方案时告诉我:) 这个问题有什么进展了吗? 【参考方案1】:

如果您的应用程序的依赖项多种多样且没有统一的语言支持,则它们通常无法正常工作。 Databrick docs 解释一下

如果库同时支持 Python 2 和 3,Databricks 将安装正确的版本。如果库不支持 Python 3,则库附件将失败并出现错误。

在这种情况下,当您将库附加到集群时,它不会自动获取依赖项。

【讨论】:

以上是关于Databricks (Spark):.egg 依赖项未自动安装?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Databricks:如何在 Databricks 群集中添加 Spark 配置

Databricks 中的 Spark 版本

在 emr 集群上安装 com.databricks.spark.xml

Databricks Spark 会议

databricks、spark、scala,不能长时间使用 lag()

Spark / Databricks 代码无法识别日期字段错误