Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用mlflow python API注册spark UDF&;然后在Spark scala代码中使用UDF?_Python_Apache Spark_Pyspark_User Defined Functions_Mlflow - Fatal编程技术网

我可以使用mlflow python API注册spark UDF&;然后在Spark scala代码中使用UDF?

我可以使用mlflow python API注册spark UDF&;然后在Spark scala代码中使用UDF?,python,apache-spark,pyspark,user-defined-functions,mlflow,Python,Apache Spark,Pyspark,User Defined Functions,Mlflow,我正在尝试使用mlflow来做机器学习工作。我使用以下python代码将ML模型注册为UDF。问题是如何在scala代码中使用UDF(test_predict)?原因是我们的主代码是Scala。问题是下面创建的UDF是临时UDF,SparkSession的作用域是有限的。谢谢 导入系统 导入mlflow 从mlflow导入pyfunc 将numpy作为np导入 从pyspark导入SparkContext,SparkConf 从pyspark导入SQLContext 从pyspark.sql.s

我正在尝试使用mlflow来做机器学习工作。我使用以下python代码将ML模型注册为UDF。问题是如何在scala代码中使用UDF(test_predict)?原因是我们的主代码是Scala。问题是下面创建的UDF是临时UDF,SparkSession的作用域是有限的。谢谢

导入系统 导入mlflow 从mlflow导入pyfunc 将numpy作为np导入 从pyspark导入SparkContext,SparkConf 从pyspark导入SQLContext 从pyspark.sql.session导入SparkSession 从pyspark.sql.types导入* sc=SparkContext() spark=SparkSession.builder.appName(“Python UDF示例”).getOrCreate() pyfunc_udf=mlflow.pyfunc.spark_udf(spark=spark,model_uri=“/sk”,result_type=“float”) spark.udf.register(“test_predict”,pyfunc_udf)
PySpark中的Python代码由驱动程序以选定的形式发送,并在执行器生成的外部Python进程中执行。当驱动程序消失时,UDF也消失了。最好的选择是用Python编写驱动程序,将Scala代码作为一组UDF,或者通过Spark上下文的(未记录的)
\uJVM
成员使用Py4J网关来调用Scala。看看如何做后者。谢谢。您是说驱动程序是python,python代码调用scala代码。我的想法正好相反。i、 scala代码(驱动程序)在使用之前调用python代码来注册UDF。我是说,如果您的驱动程序是用python编写的,并且调用scala,那么会比使用其他方法更容易。也许您也可以使用Py4J实现相反的效果。PySpark中的
SparkContext
构造函数接受Java上下文对象,因此原则上应该可以传输上下文。与SparkSession相同。一旦你的解决方案成功了,看看它会很有趣。