更新時間:2021年09月09日11時41分 來源:傳智教育 瀏覽次數:
創(chuàng)建Dataset可以通過SparkSession中的createDataset來創(chuàng)建,具體代碼如下。
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操作。