第44课:Spark 2.0编程实战之DataSet案例开发实战
来源:互联网 发布:数控车床手工编程入门 编辑:程序博客网 时间:2024/06/03 17:46
第44课:Spark 2.0编程实战之DataSet案例开发实战
people.json
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
peopleScores.json
{"n":"Michael", "score":88}
{"n":"Andy", "score":100}
{"n":"Justin", "score":89}
运行结果
16/09/16 17:48:51 INFO CodeGenerator: Code generated in 13.484901 ms
+---+----+----+-----+
|age|name| n|score|
+---+----+----+-----+
| 30|Andy|Andy| 100|
+---+----+----+-----
== Physical Plan ==
*HashAggregate(keys=[name#1], functions=[avg(score#25L), avg(age#0L)])
+- Exchange hashpartitioning(name#1, 200)
+- *HashAggregate(keys=[name#1], functions=[partial_avg(score#25L), partial_avg(age#0L)])
+- *Project [age#0L, name#1, score#25L]
+- *BroadcastHashJoin [name#1], [n#24], Inner, BuildRight
:- *Project [age#0L, name#1]
: +- *Filter ((isnotnull(age#0L) && (age#0L > 20)) && isnotnull(name#1))
: +- *Scan json [age#0L,name#1] Format: JSON, InputPaths: file:/G:/IMFBigDataSpark2016/spark-2.0.0-bin-hadoop2.6/examples/src/main/resources/people.json, PushedFilters: [IsNotNull(age), GreaterThan(age,20), IsNotNull(name)], ReadSchema: struct<age:bigint,name:string>
+- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]))
+- *Project [n#24, score#25L]
+- *Filter isnotnull(n#24)
+- *Scan json [n#24,score#25L] Format: JSON, InputPaths: file:/G:/IMFBigDataSpark2016/spark-2.0.0-bin-hadoop2.6/examples/src/main/resources/peopleScores.json, PushedFilters: [IsNotNull(n)], ReadSchema: struct<n:string,score:bigint>
源代码
package com.dt.spark200
import org.apache.spark.sql.SparkSession
object DataSetsops {
case class Person(name:String,age:Long)
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("DatasetOps")
.master("local")
.config("spark.sql.warehouse.dir", "file:///G:/IMFBigDataSpark2016/IMFScalaWorkspace_spark200/Spark200/spark-warehouse")
.getOrCreate()
import spark.implicits._
import org.apache.spark.sql.functions._
val personDF= spark.read.json("G:\\IMFBigDataSpark2016\\spark-2.0.0-bin-hadoop2.6\\examples\\src\\main\\resources\\people.json")
// personDF.show()
// personDF.collect().foreach (println)
// println(personDF.count())
val personDS = personDF.as[Person]
// personDS.show()
// personDS.printSchema()
//val dataframe=personDS.toDF()
personDF.createOrReplaceTempView("persons")
spark.sql("select * from persons where age > 20").show()
spark.sql("select * from persons where age > 20").explain()
val personScoresDF= spark.read.json("G:\\IMFBigDataSpark2016\\spark-2.0.0-bin-hadoop2.6\\examples\\src\\main\\resources\\peopleScores.json")
// personDF.join(personScoresDF,$"name"===$"n").show()
personDF.filter("age > 20").join(personScoresDF,$"name"===$"n").show()
personDF.filter("age > 20")
.join(personScoresDF,$"name"===$"n")
.groupBy(personDF("name"))
.agg(avg(personScoresDF("score")),avg(personDF("age")))
.explain()
//.show()
while(true) {}
spark.stop()
}
}
- 第44课:Spark 2.0编程实战之DataSet案例开发实战
- 第43课:Spark 2.0编程实战之SparkSession、DataFrame、DataSet开发实战
- 第45课 Spark 2.0实战之Dataset:map、flatMap、mapPartitions、dropDuplicate、coalesce、repartition等
- 《Spark商业案例与性能调优实战100课》第15课:商业案例之纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解
- 大数据Spark “蘑菇云”行动第47课程 Spark 2.0实战之Dataset:collect_list、collect_set、avg、sum、countDistinct等
- 《Spark商业案例与性能调优实战100课》第13课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段段访问次数TopN
- 《Spark商业案例与性能调优实战100课》第14课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段购买金额Top10 和访问次数增长Top10
- 第46课程 Spark 2.0实战之Dataset:sort、join、joinWith、randomSplit、sample、select、groupBy、agg、col等
- 第2期Spark纯实战公益大讲坛:通过案例实战掌握Spark编程模型内幕
- <<《Spark商业案例与性能调优实战100课》第17课:商业案例之NBA篮球运动员大数据分析系统代码实战
- 《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心业务逻辑代码实战
- Spark SQL之案例实战(四)
- 数据Spark “蘑菇云”行动Hadoop实战速成之路第30课:Hadoop在Eclipse下的编程实战
- 《Spark商业案例与性能调优实战100课》第6课:商业案例之通过Spark SQL实现大数据电影用户行为分析
- 第34课:在IDEA中开发Spark实战
- 大数据Spark “蘑菇云”行动第40课:Spark编程实战之aggregateByKey、reduceByKey、groupByKey、sortByKey深度解密
- 大数据Spark “蘑菇云”行动第41课:Spark编程实战之join、cogroup、cartesian深度解密
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第2小节:动手实战Scala面向对象编程(1)
- 一些常见的运算符重载
- TOJ 2142.Pascal Library
- PHP如何实现网址伪静态
- 王学岗app架构设计-MVP
- 【16.50%】【CF 44G】Shooting Gallery
- 第44课:Spark 2.0编程实战之DataSet案例开发实战
- 工具类:ehCache,用于缓存
- 面试宝典第6章_ 2(const) const 成员函数 ,const 与define定义的不同
- PHP实现伪静态化页面的具体实现方式
- HDU 2028 Lowest Common Multiple Plus
- 机器学习中的数据清洗与特征处理综述
- java常用设计模式
- 【HDU 2255】【KM算法模板题+KM算法详解】 奔小康赚大钱
- Android Studio下OpenCV及JNI开发