title: Are there any distributed machine learning libraries for using Python with Hadoop?
body: <p>I have set myself up with Amazon Elastic MapReduce in order to preform various standard machine learning tasks. I have used Python extensively for local machine learning in the past and I do not know Java. </p>
  
  <p>As far as I can tell there are no well developed Python libraries for distributed machine learning. Java on the other hand has <a href="http://mahout.apache.org/" rel="noreferrer">Apache Mahout</a> and the more recent <a href="https://github.com/cloudera/oryx" rel="noreferrer">Oryx</a> from Cloudera.</p>
  
  <p>Essentially it seems I have to choose between two options. Slog through parallelising my own algorithms to use with <a href="http://hadoop.apache.org/docs/stable1/streaming.html" rel="noreferrer">Hadoop streaming</a> or one of the <a href="http://blog.cloudera.com/blog/2013/01/a-guide-to-python-frameworks-for-hadoop/" rel="noreferrer">Python wrapper for Hadoop</a> until decent libraries exist or jump ship to Java so that I can use Mahout/Oryx. There is a world of difference between writing your own MapReduce word count code and writing your own MapReduce SVM! Even with with help of great tutorials like <a href="http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/" rel="noreferrer">this</a>.</p>
  
  <p>I don't know which is the wiser choice, so my question is:</p>
  
  <p>A) Is there some Python library I have missed which would be useful? If not, do you know if there are any in development which will be useful in the near future? </p>
  
  <p>B) If the answer to the above is no then would my time be better spent jumping ship to Java?</p>