[英]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.