在 Databricks Connect 和本地 Spark 环境之间切换



我希望使用Databricks Connect来开发pyspark管道。DBConnect 真的很棒,因为我能够在实际数据所在的集群上运行我的代码,所以它非常适合集成测试,但我也希望能够在开发和单元测试(pytestpytest-spark(期间,简单地使用本地 Spark 环境。

有没有办法配置 DBConnect,所以对于一个用例,我只使用本地 Spark 环境,但对于另一个用例,它使用 DBConnect?

我的 2 美分,因为我已经做了几个月的这种类型的开发:

  • 使用两个 Python 环境:一个使用 databricks-connect(因此没有安装 pyspark(,另一个只安装了 pyspark。当您想要执行测试时,只需激活"本地"虚拟环境并像往常一样运行 pytest。正如一些评论者指出的那样,确保您正在使用SparkConf().setMaster("local")初始化 pyspark 会话。
  • Pycharm极大地帮助了在开发过程中在环境之间切换。默认情况下,我总是在"本地"venv上,但是每当我想使用databricks-connect执行某些内容时,我只需从菜单中创建一个新的运行配置。简单易行。

另外,请注意 databricks-connect 的一些限制:

  • 它不再受官方支持,Databricks 建议尽可能迁移到 dbx。
  • UDF在databricks-connect中不起作用。
  • mlflow 集成不可靠。在我的用例中,我能够下载和使用模型,但无法使用跟踪 URI 记录新实验或跟踪模型databricks。这可能取决于您的 Databricks 运行时、mlflow 和本地 Python 版本。

最新更新