使用
本文提供範例,示範如何使用 pyspark.ml.connect 模組來執行分散式定型,以定型Spark ML模型並執行模型推斷。
什麼是 pyspark.ml.connect?
Spark 3.5 引入了 pyspark.ml.connect,它專為支援 Spark 連線模式和 Databricks Connect 而設計。 深入了解 Databricks Connect。
pyspark.ml.connect 模組包含常見的學習演算法和公用程式,包括分類、功能轉換器、ML 管線和交叉驗證。 此模組提供與舊版 pyspark.ml 模組類似的介面,但 pyspark.ml.connect 模組目前只包含 pyspark.ml 中演算法的子集。 支援的演算法如下:
- 分類演算法:
pyspark.ml.connect.classification.LogisticRegression - 功能轉換器:
pyspark.ml.connect.feature.MaxAbsScaler和pyspark.ml.connect.feature.StandardScaler - 評估工具:
pyspark.ml.connect.RegressionEvaluator、pyspark.ml.connect.BinaryClassificationEvaluator和MulticlassClassificationEvaluator - 管線:
pyspark.ml.connect.pipeline.Pipeline - 模型微調:
pyspark.ml.connect.tuning.CrossValidator
需求
在 Databricks Runtime 17.0 和更新版本上,Spark 連線上的 Spark ML 預設會在具有 標準 存取模式的計算資源上啟用,但有一些限制。 請參閱 Databricks Runtime 17.0 在 Standard 計算上的限制。 如果您需要進行分散式計算來處理無法在單一節點記憶體中容納的數據,或是需要進行分散式超參數調整,請在 Standard 計算上使用 Spark ML。
針對 Databricks Runtime 14.0 ML 和更新版本(包括使用 專用 存取模式之計算資源的 Databricks Runtime 17.0),使用 Spark ML 還有其他條件:
- 在叢集上設定 Databricks Connect。 請參閱 Databricks Connect 的計算組態。
- 已安裝 Databricks Runtime 14.0 ML 或更高版本。
- 使用 專用 存取模式計算資源。
範例筆記本
下列筆記本示範如何在 Databricks Connect 上使用分散式機器學習:
Databricks Connect 上的分散式機器學習
如需 pyspark.ml.connect 中 API 的參考資訊,Databricks 建議 Apache Spark API 參考
在標準運算上,Databricks Runtime 17.0 的限制
- 僅限 Python:Standard 計算上的 Spark ML 僅支援 Python。 不支援 R 和 Scala。
-
函式庫支援:僅支援
pyspark.ml套件。 此套件pyspark.mllib不受支援。 - 模型大小限制:模型大小上限為 1 GB,因此定型極大型模型可能不可行。 如果模型大小即將超過 1GB,樹狀結構模型定型將會提早停止。
- 記憶體限制:雖然數據可以分散到叢集,但訓練好的模型本身會在主節點上快取,並且與其他用戶共享。 每個會話的模型快取大小上限為 10 GB,而每個會話的記憶體內部模型快取大小上限為 Spark 驅動程式 JVM 記憶體的 25%。
- 會話逾時:標準計算的快取模型在閒置15分鐘後會自動逾時。 若要避免遺失您的模型,請在定型完成後的 15 分鐘內將其儲存到磁碟,或讓會話保持作用中且經常使用。
- 資源爭用:在標準計算環境中,資源會在工作區內的使用者和作業之間共用。 同時執行多個大型作業可能會導致效能變慢或對執行槽位的競爭。
- 不支援 GPU:標準計算環境不支援 GPU 加速。 針對 GPU 加速機器學習工作負載,建議使用專用的 GPU 叢集。
-
有限的SparkML模型:不支援下列SparkML模型:
DistributedLDAModelFPGrowthModel