相关疑难解决方法(0)

如何将rdd对象转换为spark中的dataframe

如何将RDD(org.apache.spark.rdd.RDD[org.apache.spark.sql.Row])转换为Dataframe org.apache.spark.sql.DataFrame.我使用了将数据帧转换为rdd .rdd.处理完之后我想把它放回到数据帧中.我怎样才能做到这一点 ?

scala apache-spark rdd apache-spark-sql

128
推荐指数
7
解决办法
24万
查看次数

如何在Java中的Apache Spark中将DataFrame转换为Dataset?

我可以很容易地将Scala中的DataFrame转换为Dataset:

case class Person(name:String, age:Long)
val df = ctx.read.json("/tmp/persons.json")
val ds = df.as[Person]
ds.printSchema
Run Code Online (Sandbox Code Playgroud)

但在Java版本中我不知道如何将Dataframe转换为Dataset?任何的想法?

我的努力是:

DataFrame df = ctx.read().json(logFile);
Encoder<Person> encoder = new Encoder<>();
Dataset<Person> ds = new Dataset<Person>(ctx,df.logicalPlan(),encoder);
ds.printSchema();
Run Code Online (Sandbox Code Playgroud)

但是编译器说:

Error:(23, 27) java: org.apache.spark.sql.Encoder is abstract; cannot be instantiated
Run Code Online (Sandbox Code Playgroud)

编辑(解决方案):

基于@Leet-Falcon答案的解决方案:

DataFrame df = ctx.read().json(logFile);
Encoder<Person> encoder = Encoders.bean(Person.class);
Dataset<Person> ds = new Dataset<Person>(ctx, df.logicalPlan(), encoder);
Run Code Online (Sandbox Code Playgroud)

java apache-spark spark-dataframe apache-spark-dataset

15
推荐指数
2
解决办法
2万
查看次数

Spark DataSet和RDD之间有什么区别

我仍在努力了解最近推出的Spark数据集的全部功能.

是否有何时使用RDD以及何时使用数据集的最佳实践?

在他们的公告中, Databricks解释说,通过使用数据集,可以实现运行时和内存的惊人减少.仍然声称数据集被设计为"与现有的RDD API一起工作".

这只是向下兼容性的参考,还是有人宁愿在数据集上使用RDD?

apache-spark rdd apache-spark-dataset

9
推荐指数
1
解决办法
3429
查看次数