dataframe的使用
1.通過sparksession構建dataframe
1、讀取文字檔案
val persondf2 = spark.read.
text
("file:///export/servers/person.txt"
)
2、讀取json檔案建立dataframe
val jsondf = spark.read.
json
("file:///export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/src/main/resources/people.json"
)
3、讀取parquet列式儲存格式檔案建立dataframe
val parquetdf = spark.read.
parquet
("file:///export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/src/main/resources/users.parquet"
)
2.通過rdd配合case class進行轉換df
cd /export/servers/
vim person.txt
1 zhangsan 20
2 lisi 29
3 wangwu 25
4 zhaoliu 30
5 tianqi 35
6 kobe 40
定義rdd
val linerdd = sc.
textfile
("file:///export/servers/person.txt").
map(x =
> x.
split
(" "
))
定義case class樣例類
case
class
person
(id:int,name:string,age:int)
關聯rdd與case class
val personrdd = linerdd.
map(x =
>
person(x
(0).toint,x(
1),x
(2).toint)
)
將rdd轉換成df
3.通過dataset呼叫.todf進行轉換df
都是呼叫.todf方法
val persondf = personds.todf
1.dsl風格語法
檢視dataframe當中的資料
呼叫show方法
persondf.show
檢視datafram當中部分欄位的資料:
檢視字段:
第一種方式:persondf.select(persondf.col("name")).show
第二種方式:persondf.select("name").show
第三種方式:persondf.select(col("name"),col("age")).show
第四種方式:persondf.select($"name",$"age").show
列印dataframe的schema資訊:
查詢所有的name和age,並將age+1:
persondf.select(col("id"), col("name"), col("age") + 1).show
或者
過濾age大於等於25的,使用filter方法過濾:
persondf.filter(col("age") >= 25).show
統計年齡大於30的人數:
persondf.filter(col("age")>30).count()
按年齡進行分組並統計相同年齡的人數:
persondf.groupby("age").count().show
2.sql風格語法
1、將dataframe註冊成表
persondf.registertemptable("t_person")
2、查詢年齡最大的前兩名
3、顯示表的schema資訊
spark.sql("desc t_person").show
4、查詢年齡大於30的人的資訊
spark.sql("select * from t_person where age > 30").show
Spark DataFrame中的join型別
spark dataframe中join與sql很像,都有inner join,left join,right join,full join 那麼join方法如何實現不同的join型別呢?看其原型 def join right dataframe,usingcolumns seq string jo...
spark dataframe筆記(鏈結彙總)
spark dataframe筆記 dataframe行轉列 spark dataframe筆記 對dataframe一列值保留4位小數 spark dataframe筆記 按照dataframe某一列的數值排序,並增加一列索引 2 降序排 spark dataframe筆記 按照dataframe...
Spark DataFrame關於資料常用操作
sql語法 1.檢視全表資料 dataframe.show 2.檢視部分字段資料 有4種方法 1 dataframe.select 欄位名稱 show 2 dataframe.select 欄位名稱 show 推薦 3 dataframe.select col 欄位名稱 show 4 datafra...