如何以编程方式检测 Databricks 环境

2022-09-03 14:35:28

我正在编写一个 spark 作业,该作业需要在本地和 Databricks 上运行。

每个环境(文件路径)中的代码必须略有不同,因此我试图找到一种方法来检测作业是否在Databricks中运行。到目前为止,我发现的最好的方法是在根目录中找到一个“dbfs”目录,如果它在那里,那么假设它正在Databricks上运行。这感觉不是正确的解决方案。有没有人有更好的想法?


答案 1

您可以简单地检查环境变量是否存在,例如:

def isRunningInDatabricks(): Boolean = 
  sys.env.contains("DATABRICKS_RUNTIME_VERSION")

答案 2

怎么样:

蟒:

def isLocal():
    setting = spark.conf.get("spark.master")
    return ("local" in setting)

Scala:

def isLocal(): Boolean = {
    val setting = spark.conf.get("spark.master")
    return ("local" contains setting)
}

推荐