RDD转换得到DataFrame

Posted dqz_nihao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RDD转换得到DataFrame相关的知识,希望对你有一定的参考价值。

RDD转换得到DataFrame

RDD转换得到DataFrame

RDD转换得到DataFrame有两种模式:利用反射机制推断RDD模式,利用编程方式定义RDD模式。

1.利用反射机制推断RDD模式

利用反射机制推断RDD模式时,首先需要定义一个case class。
因为只有case class 才能被spark隐式转换为DataFrame。




.map(_.split(",")) “Michael,29” 就转成了Array(“MIchael”,29)
.map(attributes=>Person(attributes(0),attributes(1).trim.toInt)).toDF Array(“MIchael”,29)就转换成了Person(“MIchael”,29)

注册临时表以供查询

2.利用编程方式定义RDD模式

使用case class前提是知道字段的名称,但在有些情况下,是不知道字段的名称。这时候就无法提前定义case class。这时候就选哟采用编程方式定义RDD模式。


这里的“name age”在这里是我们自己写的,通常这里应该是传输进去的。
schemaString.split(" “)的代码执行效果:





相当于把"表头”(schema)和"表中的记录"(rowRDD)进行拼装在一起。
下面进行查询和利用反射机制推断RDD模式查询一样先注册临时表。

以上是关于RDD转换得到DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

RDD转换为DataFrame

Spark RDD转换成DataFrame的两种方式

RDD和DataFrame转换(Java+Scala)

Spark SQL中 RDD 转换到 DataFrame

07 从RDD创建DataFrame

07 从RDD创建DataFrame