是否有任何分布式机器学习库可以将Python与Hadoop一起使用?

iRo*_*biv 10 python hadoop mapreduce elastic-map-reduce hadoop-streaming

我已经为自己设置了Amazon Elastic MapReduce,以便执行各种标准的机器学习任务.我过去曾广泛使用Python进行本地机器学习,而且我不懂Java.

据我所知,没有用于分布式机器学习的完善的Python库.另一方面,Java有Apache Mahout和最近来自Cloudera的Oryx.

基本上我似乎必须在两个选项之间进行选择.通过并行化自己的算法来使用Hadoop流式传输HadoopPython包装器之间的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集群.