[英]How to use a PySpark UDF in a Scala Spark project?
有几个人( 1 、 2 、 3 )讨论过在 PySpark 应用程序中使用 Scala UDF,通常是出于性能原因。 我对相反的情况感兴趣 - 在 Scala Spark 项目中使用 python UDF。
我对使用 sklearn(和MLFlow )构建模型特别感兴趣,然后将其有效地应用于 Spark 流作业中的记录。 我知道我也可以在 REST API 后面托管 python 模型,并在mapPartitions
的 Spark 流应用程序中调用该 API ,但是管理该任务的并发性并为托管模型设置 API 并不是我非常兴奋的事情关于。
如果没有太多像 Py4J 这样的定制开发,这可能吗? 这只是一个坏主意吗?
谢谢!
也许我参加聚会迟到了,但至少我可以为后代提供帮助。 这实际上可以通过创建你的python udf
spark.udf.register("my_python_udf", foo)
并用spark.udf.register("my_python_udf", foo)
。 您可以在此处查看文档https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.UDFRegistration.register
这个函数然后可以从所谓的sqlContext
在Python,斯卡拉,爪哇,R还是真的任何语言,因为你所访问sqlContext
直接(其中udf
注册)。 例如,您会调用类似
spark.sql("SELECT my_python_udf(...)").show()
优点 - 您可以从 Scala 调用您的sklearn
模型。
缺点 - 您必须使用sqlContext
并编写SQL
样式查询。
我希望这会有所帮助,至少对任何未来的访问者都是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.