iRo*_*biv 10 python hadoop mapreduce elastic-map-reduce hadoop-streaming
我已经为自己设置了Amazon Elastic MapReduce,以便执行各种标准的机器学习任务.我过去曾广泛使用Python进行本地机器学习,而且我不懂Java.
据我所知,没有用于分布式机器学习的完善的Python库.另一方面,Java有Apache Mahout和最近来自Cloudera的Oryx.
基本上我似乎必须在两个选项之间进行选择.通过并行化自己的算法来使用Hadoop流式传输或Hadoop的Python包装器之间的Slog,直到存在体面的库或跳转到Java以便我可以使用Mahout/Oryx.编写自己的MapReduce字数统计代码和编写自己的MapReduce SVM之间存在着天壤之别!即使与像伟大的教程帮助这个.
我不知道哪个是更明智的选择,所以我的问题是:
A)是否有一些我错过的Python库有用?如果没有,你知道在不久的将来是否有任何开发项目有用吗?
B)如果上面的答案是否定的,那么我的时间会更好地花在跳船上去Java吗?
Cha*_*guy 10
我不知道任何可以在Python中本机使用的库用于Hadoop上的机器学习,但一个简单的解决方案是使用该jpype模块,它基本上允许您从Python代码中与Java交互.
例如,您可以像这样启动JVM:
from jpype import *
jvm = None
def start_jpype():
global jvm
if (jvm is None):
cpopt="-Djava.class.path={cp}".format(cp=classpath)
startJVM(jvmlib,"-ea",cpopt)
jvm="started"
Run Code Online (Sandbox Code Playgroud)
这里有一个关于这个主题的非常好的教程,它解释了如何使用Mahout从Python代码中使用KMeans集群.