Dataframe的两种使用:Api sql
要想使用sql api首先要使用一种sparksession对象来产生dataframe 或者dataset
也可以使用一种叫做sqlcontext产生 sqlcontext的创建需要依赖于sparkcontext
也可以使用hivecontext来产生,必须要在sqlContext基础上来创建
由此可见 我们的底层还是靠sparkContext rdd核心来支持的
SparkSession是集合了(sqlcontext,sparkcontext,hivecontext)
能够直接去做dataframe和dataset
读取data文件
使用schema转变成dataframe 需要导入sql._
定义三列类型还需要导入sql.type._
根据官网spark方式转换,三部分数据 分为三列,这是间接得到的 定义schema和数据类型
定义case class toDF
agg函数给列起别名
Dataframe operators (一些操作)
把数据导入到数据库里
Dataframe是dataset中的一种类型, 就是dataset的row类型
将dataframe转换成dataset 非常简单 通过as就可以了 ,目的就是为了以后方便做数据分析报告
数据非结构化的时候使用rdd 比如客户上网产生的日志
Df vs dataset
相同点:都有优化上的分析,api都是构建在spark引擎之上的
不同点:Dataset[T]是指定泛型的 df是制定row类型的
序列化和反序列化的问题