培训系列11-spark dataframe 基础操作

// dataframe is the topic

一、获得基础数据。先通过rdd的方式获得数据

val ny= sc.textFile("data/new_york/")
val header=ny.first
val filterNY =ny.filter(listing=>{
listing.split(",").size==14 && listing!=header
})

//因为后面多是按照表格的形式来处理dataframe,所以这里增加一个size==14的限制非常有必要。要求数据整齐划一。
val nyMap= filterNY.map(listing=>{
val listingInfo=listing.split(",")
(listingInfo(0).toInt,listingInfo(2),listingInfo(9).toFloat,listingInfo(4))

})

//这里的map并没有采用key val的形式,而是四个字段并列的map格式,这种形式更加适合后面转换成dataframe,原来key value的形式,主要在groupbykey,countbykey,reducebykey的rdd操作的时候才有用。
nyMap.take(20).foreach(println)

二、把rdd转化成dataframe

val nyDF=nyMap.toDF("Room_ID","Room_Type","Price","Neighborhood")

//转化的关键步骤

三、dataframe上的关键常用操作

nyDF.show
//default it will be show 20 rows .But you can specificate row number.eg
nyDF.show(40)

//show函数可以指定行数。
nyDF.select("Room_ID","Room_Type","Price").show
//you can also specificate a row to select a special column.
val countsDF= nyDF.filter("Price< 100.0").groupBy("Room_Type").count()

猜你喜欢

转载自www.cnblogs.com/davidzhu/p/10095686.html
今日推荐