在本文中,我們將了解如何在Apache Pyspark中運行Scikit-learn模型,並討論有關每個步驟的細節。如果您已經準備好了機器學習模型,則可以直接跳到「 pyspark wrapper」部分,也可以通過以下步驟創建一個簡單的scikit learn機器學習模型。
scikit learn機器學習模型:
我們使用Python創建一個簡單的機器學習模型:
將機器學習模型保存到磁碟
pyspark wrapper
讓我們考慮一下pyspark dataframe (df)中提供的運行預測所需的特徵
創建一個python函數,該函數接受這四個特性作為參數,並將預測的分數作為輸出進行返回
將python函數轉換為pyspark UDF。這裡有兩種方式:
1、簡單地將python函數註冊為pyspark的UDF
這是最簡單的選項,但是每行的每個pyspark執行程序都將調用python函數(預測變量),如果你有一個像我們這樣的非常小的機器學習模型是可以的,但是如果你有一個大的序列化機器學習模型(> 100mb),從磁碟一次又一次地打開和讀取模型是非常低效的。
2、將模型廣播給spark執行者並進行預測
為了消除1中的低效率,此技術允許從硬碟讀取一次模型並將模型發送到所有spark執行程序。