读取文件,Rdd,DataFrame,DataSet理解
Rdd : 算子,或者我们可以将其理解为一个数组(虽然它不是数组),想象它就像一个长方形的容器,里面就单纯的存储着数据
DataFrame : 将Rdd比作长方形的容器,DataFrame就是多个长方形的容器拼接组成,也就是将rdd加上表格化就是dataframe
DataSet :,DataSet有很多的类型,相当于是由rdd经过不同类型组合起来的,其中一种类型就是DataFrame, 及Dataset[Row]=DataFrame
三者转换:
1).RDD转换DataFrame或者Dataset
转换DataFrame时,定义Schema信息,加上表格化
转换为Dataset时,不仅需要Schema信息,还需要RDD数据类型为CaseClass类型
2)Dataset或DataFrame转换RDD
由于Dataset或DataFrame底层就是RDD,所以直接调用rdd函数即可转换
dataframe.rdd 或者dataset.rdd
3)DataFrame与Dataset之间转换
由于DataFrame为Dataset特例,所以Dataset直接调用toDF函数转换为DataFrame
当将DataFrame转换为Dataset时,使用函数as[Type],指定CaseClass类型即可。
下面原文更清楚链接:https://blog.youkuaiyun.com/ZGL_cyy/article/details/119865313
scala读取Hadoop数据库