gpt4 book ai didi

scala - 如何在 Scala Spark 项目中使用 PySpark UDF?

转载 作者:行者123 更新时间:2023-12-04 04:39:50 25 4
gpt4 key购买 nike

一些人( 123 )讨论过在 PySpark 应用程序中使用 Scala UDF,通常是出于性能原因。我对相反的情况感兴趣 - 在 Scala Spark 项目中使用 python UDF。

我对使用 sklearn(和 MLFlow)构建模型特别感兴趣,然后将其有效地应用于 Spark 流作业中的记录。我知道我也可以在 REST API 和 make calls to that API in the Spark streaming application 后面托管 python 模型。在 mapPartitions ,但管理该任务的并发性并为托管模型设置 API 并不是我非常兴奋的事情。

如果没有太多像 Py4J 这样的定制开发,这可能吗?这只是一个坏主意吗?

谢谢!

最佳答案

也许我参加聚会迟到了,但至少我可以为后代提供帮助。这实际上可以通过创建您的 python udf 来实现。并使用 spark.udf.register("my_python_udf", foo) 注册它.您可以在此处查看文档 https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.UDFRegistration.register

然后可以从 sqlContext 调用此函数在 Python、Scala、Java、R 或任何语言中,因为您正在访问 sqlContext直接(注册 udf 的地方)。例如,您会调用类似

spark.sql("SELECT my_python_udf(...)").show()

优点 - 您可以调用您的 sklearn来自 Scala 的模型。

缺点 - 你必须使用 sqlContext并写 SQL样式查询。

我希望这会有所帮助,至少对任何 future 的访客都是如此。

关于scala - 如何在 Scala Spark 项目中使用 PySpark UDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51910607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com