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 时出现 java.lang.***Error