更新时间:2021年09月09日11时41分 来源:传智教育 浏览次数:
创建Dataset可以通过SparkSession中的createDataset来创建,具体代码如下。
scala >val personDs= spark.createDataset(sc.textFile("/spark/person.txt")) personDs:org.apache.spark.sq1.Dataset[string]=[value:string] scala>personDs.show() +- - - - - - - - - -- - - + | value | +- - - - - - - - - -- - - + |1 zhangsan 20 | |2 lisi 29 | |3 wangwu 25 | |4 zhaoliu 30 | |5 tianqi 35 | |6 jerry 40 | +- - - - - - - - - -- - - +
从上述返回结果personDs 的属性可以看出,Dataset从已存在的RDD中构建成功,并且赋Fvalue为String类型。Dataset和DataFrame拥有完全在相同的成员函数,通过show方式可以展示personDs中数据的具体内容。
Dataset不仅能从RDD中构建,它与DataFrame也可以互相转换,DataFrame可以通过as[ElementType]方法转换为Dataset,同样Dataset 也可以使用toDF()方法转换为DataFrame,具体代码如下:
scala>spark.read.text("/spark/person.txt".as[String] res14:org.apache.spark.sql.Dataset[string]=[value: string] scala>spatk.read.text("/spark/person.txt").as[String].toDF() Res15:org.apache.spark.sql.DataFrame=[value: string]
Detaset操作:与 DeuaFreme 大致相同,读者可查看官方API http://spark apache.org/dsats/api/scall index.html#org.apche,spark.sql.Dataset详细学习更多的Dataset操作。