【问题标题】:Python command to identify if a node is a databricks node or general node用于识别节点是数据块节点还是通用节点的 Python 命令
【发布时间】:2022-10-05 19:41:02
【问题描述】:

我需要开发一个 Python 应用程序,它可以在 Windows、Linux 或 Databricks 等普通机器上运行。我的要求是允许 python 应用程序动态识别脚本实际运行的位置。如果我的 python 代码在 Windows 上运行,它应该知道代码在 Windows 上运行。就像 Linux 一样明智。我使用 Platform.system() 来获取信息。但是databricks也将有一个操作系统平台。它如何区分 databricks 节点和普通 Linux/Unix 节点?除了使用 dbutils 或 sparksession 之外,我们是否能够运行命令并知道运行命令的节点确实是 databricks 节点? 我不认为 databricks cli 安装在 databricks 集群上。所以我没有任何命令来确定平台是否是 Linux/Windows/Databricks。

注意:该应用程序将作为轮文件部署在 Windows/Linux/Databricks 上。所以要求是应用程序应该识别代码在哪个节点上运行。如果它在 windows/unix 上运行,它必须访问本地文件系统并在本地文件系统上创建一些文件。如果它在数据块上运行,它应该访问指向 Azure ADLS 的挂载点,并在 ADLS 上/从 ADLS 创建/访问文件。

  • 您能否提供其他信息,例如您尝试过的内容以及遇到的任何错误?
  • 我没有收到任何错误。我尝试了 Platform.System() ,它指定它是 Windows 还是 Linux 机器。但是一个databricks节点也可以有一个Linux操作系统,对吧?因此,我正在寻找一个命令,python 应用程序将通过该命令确定节点是普通 Linux 节点还是带有 Databricks 的 Linux。我试图找出一些命令来获取此信息。不幸的是,我没有找到任何东西。至少如果 CLI 安装在 Databricks 上,我会使用 databricks --version 或类似命令来查找此信息。如果失败,则它不是数据块节点。
  • 但是,databricks cli 无法安装在我们的环境中。此外,如果 cli 安装在 windows 或 unix 上,python 将开始将非 databricks 节点也视为 databricks 节点。所以我正在寻找一些对databricks集群非常原生的真实命令。

标签: python-3.x azure-databricks


【解决方案1】:

您可以做的最简单的检查是检查驱动程序节点上是否存在/databricks 文件夹。可以通过检查/databricks/jars 导演、/databricks/DBR_VERSION 文件等来完成额外的检查。

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2011-08-06
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多