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模式查询一样先注册临时表。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值