对当下的企业级数据应用来说,SparkSQL的应用空间肯定要比单纯的写RDD处理大很多,因为SparkSQL比RDD好写的多,也更贴近业务需求和更友好的能处理数据,而且技术门槛也更低。
但RDD是Spark中所有的数据抽象的基础,最大的特点是对开发者而言暴露的是不带schema的原始数据,如果当前要处理的业务数据刚好是一些非结构或者半结构化的格式,比如用户的网络行为日志数据,因为数据长度不固定、字段个数也不固定,那么就没有办法给他确定固定的schema这个时候就根本无法用SQL的,必须通过算子对其进行各种逻辑判断与转换才能将这个数据给洗成一个规整的后续业务可用的结构化数据集,而这个过程最简单高效的方式就是使用RDD(API接口),而如果使用DataFrame或DataSet他会把这个数据强行赋予一个默认的schema,开发人员还得额外多一个步骤把这个原始数据从中给提取出来反而变的不方便,所以RDD对于某些场景下而言依然有优势。
标签:结构化,数据,选择,RDD,SparkSQL,原始数据,schema From: https://blog.csdn.net/2301_79551573/article/details/136917988