【发布时间】:2022-04-08 20:32:26
【问题描述】:
我目前正在使用 spark 从 databricks 笔记本访问 deltalake 表。但是现在我需要从 MLflow 项目访问增量表。 MLflow spark api 只允许记录和加载 SparkML 模型。关于如何实现这一点的任何想法?
目前我正在尝试通过 MLflow 项目中的此代码访问 spark:
spark = pyspark.sql.SparkSession._instantiatedSession
if spark is None:
# NB: If there is no existing Spark context, create a new local one.
# NB: We're disabling caching on the new context since we do not need it and we want to
# avoid overwriting cache of underlying Spark cluster when executed on a Spark Worker
# (e.g. as part of spark_udf).
spark = ( pyspark.sql.SparkSession.builder \
.config("spark.python.worker.reuse", True)
.config("spark.databricks.io.cache.enabled", False)
# In Spark 3.1 and above, we need to set this conf explicitly to enable creating
# a SparkSession on the workers
.config("spark.executor.allowSparkContext", "true")
.master("local[*]")
.appName("MLflow Project")
.getOrCreate()
)
但我收到此错误:
py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
【问题讨论】:
-
你想做什么?为什么需要从模型访问三角洲湖?
-
不是来自模型。我的意思是,如何从 mlflow 项目访问 delta 湖表?现在我正在通过 spark.table() 在 databricks notebook 中访问它,而没有启动任何 spark 实例,因为 databricks notebook 本身就是这样做的。如果我需要访问驻留在 databricks 中的 deltalake 表,除了 databricks 笔记本之外,我该如何访问它?
标签: apache-spark pyspark databricks delta-lake mlflow