开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:DataFrame 介绍_创建_read】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/690/detail/12047
DataFrame 介绍_创建_read
内容介绍
一、createDataFrame 的创建
二、read 的创建
一、createDataFrame 的创建
createDataFrame 的创建可以通过 spark.createDataFrame 的各个重载方法,其中各色重载方法可通过 rdd 来创建,也可以通过 rowRDD 来创建,还可以通过java的list来创建,也可以通过 java 的 RDD 来创建等等,以上方法很多,只需要在createDataFrame()方法中传入集合参数即可,createDataFrame(personList)。
@Test
def dataframe2(): unit = {
//第一步:创建 SparkSession
val spark = Sparksession.builder()
.appName( name ="dataframe1")
.master( master = "loca1[6]")
.getorcreate()
//第二步:导入隐式转换
import spark.implicits._
//第三步:创建一个 list,而 list 当中放的是 person
val personList = seq(Person(" zhangsan",15),Person("lisi",20))
//1.toDF ,可以作用于 PersonList,因而可以直接使用 seq 来调用 toDF
val df1 = personList.toDF()
//同时也可以将其作为一个转换作用于RDD上,spark.sparkcontext.parallelize(personList)创建一个RDD
val df2 = spark.sparkcontext.parallelize(personList).toDF()
//2.createDataFrame
//3.DataFrameReader将其简称为 read,只需要在 createDataFrame()方法中传入集合参数即可,createDataFrame(personList)。
Val df3 = spark.createDataFrame(personList)
}
}
case class Person( name: string, age: Int)
二、read的创建
Read 的使用也很重要,首先有一个北京10年到15年 PM 的外部数据集,该数据集在 RDD 部分已经使用过一次,下面演示,怎么通过 DataFrame 如何读取外部的文件,建议和 RDD 的读取做对比理解。
@Test
def dataframe2(): unit = {
//第一步:创建 SparkSession
val spark = Sparksession.builder()
.appName( name ="dataframe1")
.master( master = "loca1[6]")
.getorcreate()
//第二步:导入隐式转换
import spark.implicits._
//第三步:创建一个 list,而 list 当中放的是 person
val personList = seq(Person(" zhangsan",15),Person("lisi",20))
//1.toDF ,可以作用于 PersonList,因而可以直接使用 seq 来调用 toDF
val df1 = personList.toDF()
//同时也可以将其作为一个转换作用于RDD上,spark.sparkcontext.parallelize(personList)创建一个RDD
val df2 = spark.sparkcontext.parallelize(personList).toDF()
//2.createDataFrame ,只需要在 createDataFrame()方法中传入集合参数即可,createDataFrame(personList)。
Val df3 = spark.createDataFrame(personList)
//3.DataFrameReader 将其简称为 read
//创建变量命名为 df4,通过 sprak.read 即可读取,之后在确定读取格式,在此为csv,定义路径位置,至此就完成了一个 DataFrame 的读取。
val df4 = spark.read.csv( path = "dataset/BeijingPN20100101_20151231_noheader.csv")
//查看 read 读取的 df4是否成功
df4.show()
}
}
case class Person( name: string, age: Int)
至此 read 创建 RDD 的方式也讲解完毕,以上三种方式全部讲解完毕。运行df4.show(),出现如图的运行结果,可以看见结果皆为数据集中的每一行,但此处有一个小问题:在显示处并没有 header。在后面的系统章节会进行讲解。
以上就是读取 DataFrame 的三种形式。

