1.请分析SparkSQL出现的原因,并简述SparkSQL的起源与发展。
SparkSQL的出现,解决了对不同数据源和不同数据的操作,例如结构化和非结构化数据。还有可以支持融合关系查询和复杂分析算法。
SparkSQL的前身是Shark,Shark中提供了类似于Hive的功能。但是Shark设计中导致了两个问题,一是执行计划优化完全依赖Hive, 二是Spark是线程进行,而MapReduce是进程级并行,此此过程会导致线程安全问题。而转向SparkSQL的开发。
2. 简述RDD 和DataFrame的联系与区别?
RDD是分布式的Java对象的集合,但是,对象内部结构对于RDD而言是不可知的。DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息,就相当于数据库的一张表。
3.DataFrame的创建
spark.read.text(url)
spark.read.json(url) 注意从不同文件类型生成DataFrame的区别。
spark.read.format("text").load("people.txt")
spark.read.format("json").load("people.json")