读入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(DepDelay)".desc).show()
学习时间 82分钟
操作时间 36分钟
按键次数 551次
实验次数 2次
报告字数 1091字
是否完成 未完成