dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)
創建DataFrame的幾種方式
1、讀取json格式的文件創建DataFrame
注意:
1. json文件中的json數據不能嵌套json格式數據。
2. DataFrame是一個一個Row類型的RDD,df.rdd()/df.javaRdd()。
3. 可以兩種方式讀取json格式的文件。
4. df.show()默認顯示前20行數據。
5. DataFrame原生API可以操作DataFrame(不方便)。
6. 注冊成臨時表時,表中的列默認按ascii順序顯示列。
代碼演示
在項目中新建一個目錄用于存儲sparksql文件,在文件中編寫一個json文件,如下圖
新建一個scala文件,編寫代碼讀取json文件
需求:讀取json文件中的數據信息并顯示表結構信息
package運行結果
sparksql能夠根據條件查詢json文件中的數據(類似sql語句)
package注冊臨時表
package運行結果
2、通過json格式的RDD創建DataFrame
代碼演示
需求:建立兩個json格式的RDD,將RDD注冊成臨時表,利用連接查詢查詢出表中學生姓名、年齡、成績等信息
package運行效果
3、非json格式的RDD創建DataFrame
通過反射的方式將非json格式的RDD轉換成DataFrame(不建議使用)
注意
3. RDD轉成DataFrame后會根據映射將字段按Assci碼排序
4. 將DataFrame轉換成RDD時獲取字段兩種方式,一種是df.getInt(0)下 標獲取(不推薦使用),另一種是df.getAs(“列名”)獲取(推薦使用)
代碼演示
在項目的sparksql目錄中新建一個person.txt文件,在文件中編寫如下內容
編寫代碼
package運行結果
RDD轉換成DataFrame
DataFrame轉換成RDD
動態創建Schema將非json格式的RDD轉換成DataFrame
代碼演示
package運行結果
總結
以上是生活随笔為你收集整理的dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python导入模块以及类_python
- 下一篇: 如何编程两个android 手机进行通信