Spark DataFrame建立及使用

2021-10-20 20:49:36 字數 3463 閱讀 3244

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...