我想使用elasticsearch-hadoop-2.1.0.rc1.jar
jar文件(找到here)將SparkR 1.4.0掛鉤到Elasticsearch。它需要一些黑客入侵,調用SparkR:::callJMethod
函數。我需要爲幾個Java類獲得一個jobj
R對象。對於一些類,這個工程:sparkR 1.4.0:如何包括罐子
SparkR:::callJStatic('java.lang.Class',
'forName',
'org.apache.hadoop.io.NullWritable')
但對於其他人,這不:
SparkR:::callJStatic('java.lang.Class',
'forName',
'org.elasticsearch.hadoop.mr.LinkedMapWritable')
屈服的錯誤:
java.lang.ClassNotFoundException:org.elasticsearch.hadoop.mr.EsInputFormat
好像Java未能找到org.elasticsearch.*
類,即使我已經嘗試將它們與命令行--jars
的參數以及sparkR.init(sparkJars = ...)
函數結合使用。
任何幫助將不勝感激。另外,如果這是一個更適合於實際SparkR問題跟蹤器的問題,有人可以請我指出它嗎?我看了看,無法找到它。另外,如果有人知道另一種方法可以將SparkR
截至Elasticsearch
,我也很樂意聽到這一點。
謝謝! 本
在SparkR中使用'--jars'指定的jar的方式存在一個錯誤。我們在幾天前通過https://github.com/apache/spark/pull/7001進行了修復。如果你從主分支構建Spark,你應該可以嘗試一下。 –