簡體   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