RDD、DataFrame、DataSet

在Spark中这三种数据格式十分重要,是使用Spark的基础中的基础。自己刚开始也一直比较模糊,所以写篇文章记录一下作为备用。
DataSet算子合集
整体算子

RDD和DataFrame

在这里插入图片描述
上图左侧的RDD[Person]虽然以Person为类型参数,但是对Spark框架来说它无法解析得到Person的内部具体结构,但是我们可以通过代码具体控制每个元素的转化。而DataFrame增加一个schema结构,里面记录了每列的字段类型和名称。
所以:DataFrame=RDD[Row]+schema;DataFrame = DataSet[Row]
注:这里的Row类型是什么?其实一个模糊指代类型就是指代一行。如在DataFrame中Spark框架可以解析到每个字段的类型,但是每一行也可以也是各结构,这个结构就是Row类型。后面提到的DataSet就是将这个Row类型明确了!

转换

Rdd转DataFrame的原因:将RDD转换成DataFrame之后,借用SparkSql和HQL语句快速统计和查询。
RDD转化为DataFrame的两种方式 :推荐第二种方式,动态编程。
DataFrame转RDD的原因:解决一些使用sql难以处理的统计分析;将数据写入Mysql
DataFrame转Rdd直接调用.rdd算子即可

转换备忘版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值