SparkSql面试指南

一、DataFrame、DataSet、RDD三者区别

1.DataFrame类似于传统数据库中的二维表格,带有 schema元信息(是元数据的一个抽象集合),
所表示的二维表数据集的每一列都带有名称和类型。
2.反观弹性分布式数据集 RDD(数据可完全放内存或完全放磁盘,也可部分存放在内存,部分存放在磁盘,task如果失败会特定次数的重试),由于无从得知所存数据元素的具体内部结构,Spark Core 只能在 stage 层面进行简单、通用的流水线优化。
3.DataSet 是 Spark 1.6 中添加的一个新抽象,是 DataFrame的一个扩展。相对于RDD,Dataset提供了强类型支持,也是在RDD的每行数据加了类型约束。

二、加载保存格式Parquet

Parquet属于Hadoop生态圈的一种能够有效存储嵌套数据的列式存储格式,兼容大多圈内计算框架(Hadoop、Spark),另外Parquet是平台、语言无关的,SparkSQL 默认读取和保存的文件格式为 parquet。

三、RDD map filter flatMap

1、filter:
返回满足条件的结果的集合
2、map:
对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD
任何原RDD中的元素在新RDD中都有且只有一个元素与之对应
输入分区与输出分区一一对应
3、flatMap:
对于每一个元素返回的是多个元素组成的迭代器

你可能感兴趣的:(大数据,sparksql,大数据)