2015-04-12 64 views
0

我是Spark和Scala的新手。我正在開發一個Scala項目,我將從SQL Server獲得數據訪問權限。如何繼續我的Spark/Scala項目

SQL Server中有一張表有關於衣服的信息。 itemCode是主鍵和多個屬性與布爾值0/1 - 設計師,獨佔,手搖織機和具有產品等

Code Designer Exclusive Handloom 
A  1  0   1 
B  1  0   0 
C  0  0   1 
D  0  1   0 
E  0  1   0 
F  1  0   1 
G  0  1   0 
H  0  0   0 
I  1  1   1 
J  1  1   1 
K  0  0   1 
L  0  1   0 
M  0  1   0 
N  1  1   0 
O  0  1   1 
P  1  1   0 

和列表繼續屬性幾個其它列。

我有選擇的32個項目集合了320個項目有ATLEAST: 8設計師,8獨家,8手搖紡織機,8 WeddingStyle,8 PartyStyle, 8絲綢,8喬其紗

我已經解決了在MS Excel求解器中的問題(它使用梯度下降算法),通過添加一個額外的列並在添加的列和所需的列之間使用sumproduct函數。所以,這個問題在那裏得到了解決,同樣花費了大約1分30秒。例如,如果我想從上述16個項目中選擇6個項目與至少4個項目設計師,4個獨家,4個手搖織機,則可以通過編寫32個連接的SQL查詢來解決該問題(如此多) ,查詢就像在我的帖子中:MYSQL - Select rows fulfilling many count conditions

在生產中,我必須像這樣取32行,所以我的問題是如何進一步處理該項目。

我正在爲Eclipse的Scala IDE工作,並在那裏添加了spark mllib。我已經通過JDBC讀取的數據,並存儲在一個數據幀,並且將所創建的臨時表: dataFrame.registerTempTable(「數據」)

有一個在mllib優化的一類優化使用梯度下降(如Excel求解一樣)解決問題。但是,這是針對機器學習並將輸入培訓數據作爲輸入。

我無法理解如何繼續我的項目。我可以使用mllib,還是使用sparkSQL更好的簡單版本的sql。我需要認真的幫助。

+0

聽起來像你在正確的軌道上!保持! –

+0

但接下來我該做什麼? Mllib用於機器學習,但我沒有創建模型,所以我可以使用類優化器來解決我的問題? –

回答

0

我通過線性規劃解決了這個問題。我現在在我的scala項目中使用了java的lpsolver庫。它給出的結果幾乎與excel解算器中的結果相同。