elasticsearch,apache-spark,rdd,apache-spark-mllib,Java,elasticsearch,Apache Spark,Rdd,Apache Spark Mllib" /> elasticsearch,apache-spark,rdd,apache-spark-mllib,Java,elasticsearch,Apache Spark,Rdd,Apache Spark Mllib" />

将JavaPairdd转换为JavaRDD

将JavaPairdd转换为JavaRDD,java,elasticsearch,apache-spark,rdd,apache-spark-mllib,Java,elasticsearch,Apache Spark,Rdd,Apache Spark Mllib,我正在使用ElasticSearch Hadoop库从ElsticSearch获取数据 JavaPairRDD<String, Map<String, Object>> esRDD = JavaEsSpark.esRDD(sc); javapairdd esRDD=JavaEsSpark.esRDD(sc); 现在我有了javapairdd。我想在这个RDD上使用MLLib中的随机林。 所以我将它转换为javapairdd.toRDD(esRDD),这将给我RDD。

我正在使用ElasticSearch Hadoop库从ElsticSearch获取数据

JavaPairRDD<String, Map<String, Object>> esRDD = JavaEsSpark.esRDD(sc);
javapairdd esRDD=JavaEsSpark.esRDD(sc);
现在我有了javapairdd。我想在这个RDD上使用MLLib中的随机林。 所以我将它转换为javapairdd.toRDD(esRDD),这将给我RDD。 使用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];
JavaRDD[]splits=(JavaRDD.fromRDD(javapairdd.toRDD)(esRDD),
randomSplit(新的double[]{0.5,0.5});
JavaRDD trainingData=splits[0];
javarddtestdata=splits[1];
我想将trainingData和TestData传递给Random Forest算法,但它在编译时给出了强制转换异常

类型不匹配:无法从转换 JavaRDD[Tuple2[String,Map[String,Object]][]到 JavaRDD[LabeledPoint][]

添加方括号,因为小于和大于符号不起作用


谁能给我建议一下正确的铸造方法吗。我不熟悉Spark数据结构。

JavaPairRDD列中有哪些数据?JavaPairRDD是第一列和第二列之间的键/值映射,与普通RDD不同

您可能希望从javapairdd中删除第一列,只返回JavaRDD和value列

为此,只需运行以下操作:

JavaRDD newRDD=esRDD.map(x=>x.\u2)

或者等效于创建一个没有第一列的新JavaRDD