Spark Java API:如何将JavaRDD转换为RDD类型
Spark Java API: How to convert JavaRDD to RDD type
我正在尝试将使用 Dataframe
编写的代码转换为 DataSet
API。
问题是我将 JavaRDD 创建为:
final JavaRDD<String> abcJavaRdd= jsc.textFile("/path/to/textfile");
但是 sqlContext class 的 createDataset
方法需要 RDD<T>
类型而不是 JavaRDD<T>
类型。
SQLContext sqlc = new SQLContext(jsc);
....
....
Encoder<Abc> abcEncoder= Encoders.bean(Abc.class);
Dataset<Abc> abcDataset= sqlc.createDataset(abcJavaRdd, abcEncoder);
上面代码中的最后一行不起作用。
我想知道如何从“org.apache.spark.api.java.JavaRDD
”类型创建“org.apache.spark.rdd.RDD
”类型?
我在 mapr 集群上使用 Java 1.8 和 apache spark 1.6.1。
通过 API 挖掘后,我找到了答案。
org.apache.spark.api.java.JavaRDD
class 公开了一个静态方法,将 JavaRDD
类型的对象转换为 org.apache.spark.rdd.RDD
类型的对象,该方法被 createDataset
方法接受15=] class.
Encoder<Abc> abcEncoder= Encoders.bean(Abc.class);
Dataset<Abc> abcDataset= sqlc.createDataset(JavaRDD.toRDD(abcJavaRdd), abcEncoder);
另一种方法是在 abcJavaRdd
上调用 rdd()
方法。即 abcJavaRdd.rdd()
我正在尝试将使用 Dataframe
编写的代码转换为 DataSet
API。
问题是我将 JavaRDD 创建为:
final JavaRDD<String> abcJavaRdd= jsc.textFile("/path/to/textfile");
但是 sqlContext class 的 createDataset
方法需要 RDD<T>
类型而不是 JavaRDD<T>
类型。
SQLContext sqlc = new SQLContext(jsc);
....
....
Encoder<Abc> abcEncoder= Encoders.bean(Abc.class);
Dataset<Abc> abcDataset= sqlc.createDataset(abcJavaRdd, abcEncoder);
上面代码中的最后一行不起作用。
我想知道如何从“org.apache.spark.api.java.JavaRDD
”类型创建“org.apache.spark.rdd.RDD
”类型?
我在 mapr 集群上使用 Java 1.8 和 apache spark 1.6.1。
通过 API 挖掘后,我找到了答案。
org.apache.spark.api.java.JavaRDD
class 公开了一个静态方法,将 JavaRDD
类型的对象转换为 org.apache.spark.rdd.RDD
类型的对象,该方法被 createDataset
方法接受15=] class.
Encoder<Abc> abcEncoder= Encoders.bean(Abc.class);
Dataset<Abc> abcDataset= sqlc.createDataset(JavaRDD.toRDD(abcJavaRdd), abcEncoder);
另一种方法是在 abcJavaRdd
上调用 rdd()
方法。即 abcJavaRdd.rdd()