spark的数据集,无论rdd,dataframe,dataset都能用自带的api函数来方便的进行数据计算,包括聚合 分组 排序 统计 新增列 连接合并表等第,而不需要自己取实现怎么计算,或者自己写sql。
记录下各种需求下的计算代码,前提条件是搭建好集群,先引入下面的代码import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import spark.sqlContext.implicits._ //代码中间引入
//根据现有列计算添加新列(这里举例两个字段相除添加得到新一列)
Df.withColumn("newColumn",$"column1"/$"column2")
//根据现有列按条件计算添加新列
Df.withColumn("is_true",when($"c1"/$"c2" >=0.8,1).otherwise(0))
//分组统计字段值总数
Df.groupBy("STUDENT_ID").agg(sum("score").as("total_score"))
//分组统计字段值出现的次数
Df.groupBy("STUDENT_ID").agg(count(when($"grade_level" ==="A",1).otherwise(0)).as("countA"))
//按字段合并表 左连接
Df=Df.join( Df1, "STUDENT_ID" )
//按多个字段合并表 左连接