简体   繁体   English

将 JavaPairRDD 转换为 JavaRDD

[英]Convert JavaPairRDD to JavaRDD

I am fetching data from ElsticSearch using ElasticSearch-Hadoop Library.我正在使用 ElasticSearch-Hadoop 库从 ElsticSearch 获取数据。

JavaPairRDD<String, Map<String, Object>> esRDD = JavaEsSpark.esRDD(sc);

Now I have JavaPairRDD.现在我有了 JavaPairRDD。 I want to use Random Forest from MLLib on this RDD.我想在这个 RDD 上使用来自 MLLib 的随机森林。 So I am converting it to JavaPairRDD.toRDD(esRDD) this will give me RDD.所以我将它转换为 JavaPairRDD.toRDD(esRDD) 这会给我 RDD。 Using RDD I am converting again to JavaRDD使用 RDD 我再次转换为 JavaRDD

JavaRDD<LabeledPoint>[] splits = (JavaRDD.fromRDD(JavaPairRDD.toRDD(esRDD),
            esRDD.classTag())).randomSplit(new double[] { 0.5, 0.5 });

JavaRDD<LabeledPoint> trainingData = splits[0];
JavaRDD<LabeledPoint> testData = splits[1];

I want to pass trainingData and TestData to Random Forest algorithm but it gives casting exception at compile time.我想将 trainingData 和 TestData 传递给随机森林算法,但它在编译时给出了强制转换异常。

Type mismatch: cannot convert from JavaRDD[Tuple2[String,Map[String,Object]]][] to JavaRDD[LabeledPoint][]类型不匹配:无法从 JavaRDD[Tuple2[String,Map[String,Object]]][] 转换为 JavaRDD[LabeledPoint][]

Added square brackets as less than and greater than signs are not working添加方括号,因为小于和大于符号不起作用

Could any one suggest me the proper way for Casting.任何人都可以建议我正确的铸造方法。 I am new to Spark Datastrucutres.我是 Spark Datastrucutres 的新手。

What data do you have in the JavaPairRDD columns? JavaPairRDD 列中有哪些数据? A JavaPairRDD is a key/value mapping between the first and second column, unlike a normal RDD.与普通 RDD 不同,JavaPairRDD 是第一列和第二列之间的键/值映射。

You possibly want to drop off the first column from the JavaPairRDD, returning just JavaRDD with just the value column.您可能希望从 JavaPairRDD 中删除第一列,只返回带有值列的 JavaRDD。

To to this, simply run something like:为此,只需运行以下内容:

JavaRDD newRDD = esRDD.map(x => x._2); JavaRDD newRDD = esRDD.map(x => x._2);

or equivalent to create a new JavaRDD without the first column.或等效于创建一个没有第一列的新 JavaRDD。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM