繁体   English   中英

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

[英]How to use a PySpark UDF in a Scala Spark project?

有几个人( 123 )讨论过在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM