AlexDM L166 2016-11-29 15:11:44 DataFrame 入门
1610 0

“Spark 讲堂之 DataFrame 入门”实验报告

DataFrame 入门

读入csv格式数据

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("/home/shiyanlou/1987.csv")

读入json格式 val df = sqlCoontext.read.json(filePath)

下载一些依赖的第三方包,并配置

spark-shell --packages com.databricks:spark-csv_2.11:1.1.0

查看记录 df.take(1)

查看数据结构 df.printSchema()

类型转换: 注意是双引号 df.col("Year").cast("int")

修改之后查看数据结构,发现类型没有变化,不知道怎么回事?

另一种修改类型方法 val df_1 = df.withColumnRenamed("Year","oldYear") val df_2 = df_1.withColumn("Year",df_1.col("oldYear").cast("int")).drop("oldYear")

自定义函数

def convertColumn(df: org.apache.spark.sql.DataFrame, name:String, newType:String) = { val df_1 = df.withColumnRenamed(name, "swap") df_1.withColumn(name, df_1.col("swap").cast(newType)).drop("swap") }

计算均值等 val averageDelays = df_4.groupBy(df_4.col("FlightNum")).agg(avg(df_4.col("ArrDelay")), avg(df_4.col("DepDelay")))

缓存数据 averageDelays.cache()

查看计算结果 averageDelays.show()

对结果排序 averageDelays.orderBy("AVG(ArrDelay)").show()

降序 averageDelays.sort($"AVG(ArrDelay)".desc).show()

多字段排序 averageDelays.sort("AVG(ArrDelay)".desc,"AVG(ArrDelay)".desc, "AVG(DepDelay)".desc).show()

最新评论
暂无评论~