Spark MapReduce
- 使用Spark transformations actions 操作構建代碼
- 使用配置信息進行任務分發(fā),不關注其具體調(diào)度過程
Jupyter 應該架于Spark集群上層,調(diào)用Spark完成MapReduce操作后返回結果

goldersgreen 后端服務可以調(diào)用Spark
- MLlib: 機器學習庫,提供大量機器學習工具
- SQL: 提供了查詢結構化數(shù)據(jù)及計算結果等信息的接口
- Streaming: 實時數(shù)據(jù)流的處理
MLlib
- 特征的提取,轉化和選擇
特征提取:TF-IDF,Word2Vec, CountVectorizer
特征變換:Tokenizer, StopWordsRemover, n-gram,Binarizer
特征選擇: VectorSlicer, RFormula, ChiSqSelector
局部敏感哈希:Locality Sensitive Hashing operations and alorithms - 分類和回歸
分類:Logistic Regression, Decision tree classifier,Random forest classifier
回歸:Linear regression, Generalized linear regression,Decision tree regression - 聚類
k - means,Latent Dirichlet allocation,高斯混合模型(GMM) - 協(xié)同過濾
- 超參數(shù)調(diào)整
CrossValidator, TrainValidationSplit
CrossValidator(本機示例程序)
設想
用戶在機器學習是調(diào)用某個算法,通過jupyter連接到Spark完成該算法的分布式計算,反饋結果。 算法分布式計算需要預先寫好Spark的python代碼。
計劃
研究關于超參數(shù)調(diào)整知識
實現(xiàn)超參數(shù)調(diào)整范例
Spark TensorFlow
using Spark’s built-in broadcasting mechanism
https://databricks.com/blog/2016/01/25/deep-learning-with-apache-spark-and-tensorflow.html
自己構建代碼實現(xiàn),需要對Spark和機器學習算法有深度的理解才能實現(xiàn)。
http://go.databricks.com/hubfs/notebooks/TensorFlow/Test_distributed_processing_of_images_using_TensorFlow.html
演示了對于不同數(shù)量的神經(jīng)元,繪制關于學習率的測試性能,代碼實現(xiàn)較為復雜,可能自己Spark, tensorflow,機器學習不夠了解TensorFlowOnSpark 雅虎今年2月份開源的框架
https://github.com/yahoo/TensorFlowOnSpark
提供了一個范例,通過部分代碼替換,實現(xiàn)distributed MNIST training
https://github.com/yahoo/TensorFlowOnSpark/wiki/GetStarted_standalone
sparkmagic
interactively working with remote Spark clusters through Livy, a Spark REST server, in Jupyter notebooks
通過jupyter 發(fā)送restful api 控制集群
結論: 暫時沒有應用到我們項目的價值(優(yōu)先級低)
具體計劃
確定好架構后研究Spark RDD操作,將需要實現(xiàn)的model進行map reduce操作
同時研究MLlib機器學習庫,提供額外的機器學習方法