2017-08-26 57 views
1

我正在Apache Spark中開發基於Scala的極限學習機。我的模型必須是Spark Estimator,並使用Spark框架才能適應機器學習管道。有誰知道Breeze是否可以和Spark一起使用?我所有的數據都在Spark數據框中,我可以使用Breeze導入它,使用Breeze DenseVectors作爲數據結構,然後轉換爲Estimator部件的DataFrame。 Breeze的優點在於,它對Moore-Penrose僞逆具有函數pinv,這是一個非方陣矩陣的逆。據我所知,Spark MLlib中沒有相應的功能。我不知道是否有可能將Breeze tensors轉換爲Spark DataFrames,所以如果有人有這方面的經驗,這將是非常有用的。謝謝!可以Spark和ScalaNLP庫Breeze一起使用嗎?

回答

1
  • Breeze可以與Spark一起使用。實際上,它在內部用於許多MLLib函數,但所需的轉換不作爲public公開。您可以添加自己的轉換並使用Breeze處理單個記錄。

    例如,對於Vectors你可以找到轉換代碼:

    對於Matrices請參閱asBreeze/fromBreezeMatrices.scala

  • 但是,它不能用於分佈式數據結構。 Breeze對象使用低級庫,不能用於分佈式處理。因此DataFrame - Breeze對象轉換是可能的,只有當collect數據給驅動程序並且僅限於數據可以存儲在驅動程序存儲器中的場景時。

  • 還有其他的庫,like SysteML,它與Spark集成在一起,併爲分佈式對象提供更全面的線性代數例程。

+0

謝謝!我想我會在本地處理Spark中的數據結構,除此之外我需要訪問Breeze的pinv函數。我希望它存在於MLlib中。 – LucieCBurgess

相關問題