RDD封装成DataFrame的几种方式(SparkSQL模块)

SparkSql

  • Spark 引入SparkSql模块,目的是处理结构化数据;
  • 该模块添加了新的RDD类型SchemaRDD,SparkSql将SchemaRDD封装成一个DataFrame对象,

DataFrame对象类似于关系数据库中的二维表;

它只提供读操作,不能添加或修改和删除数据。

  • SparkSql中的数据基于列存储,每一列数据类型都是同质的,可以避免数据在内存中类型的频繁转换;
  • 使用SparkSql模块之前,首先把RDD对象转换成DataFrame对象

再使用SQL语言操作DataFrame对象,

或者使用DataFrame的成员方法操作DataFrame对象

如何将RDD对象转化为DataFrame对象

  • RDD对象实例的toDF方法

RDD对象实例的toDF方法,可以将一个RDD对象转化为DataFrame对象。RDD对象数据集可以从本地磁盘文件获取,也可以从HDFS获取,或者从Array、List获取

注:

此处用到了SparkSql的隐式转换

import sqc.implicits._

res33.toDF("id","name")

若隐式转换不起作用,可以采用

 

  • JSON格式文件直接转化为DF对象

Spark3.0版本的SparkSql模块的入口点是SparkSession对象,首先需要创建一个SparkSession对象

 

下面用API方式把JSON文件转化为DF对象,可以直接复制到Shell窗口执行

 

  • 数据库中二维表格直接转化为DF对象

如何在Spark2版本转化DataFrame对象

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值