深入浅出spark数据结构-RDD,DataFrame,DataSet (2)

一般用元组把一行的数据写在一起,然后在toDF中指定字段名

RDD转Dataset: import spark.implicits._ case class Coltest(col1:String,col2:Int)extends Serializable //定义字段名和类型 val testDS = rdd.map {line=>       Coltest(line._1,line._2)     }.toDS

可以注意到,定义每一行的类型(case class)时,已经给出了字段名和类型,后面只要往case class里面添加值即可

Dataset转DataFrame:

这个也很简单,因为只是把case class封装成Row

import spark.implicits._ val testDF = testDS.toDF DataFrame转Dataset: import spark.implicits._ case class Coltest(col1:String,col2:Int)extends Serializable //定义字段名和类型 val testDS = testDF.as[Coltest]

这种方法就是在给出每一列的类型后,使用as方法,转成Dataset,这在数据类型是DataFrame又需要针对各个字段处理时极为方便

《每日五分钟搞定大数据》原创系列,每周不定时更新。评论不能及时回复可直接加公众号提问或交流,知无不答,谢谢 。

欢迎关注大叔

深入浅出spark数据结构-RDD,DataFrame,DataSet

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwddfs.html