Spark examples源码分析
这篇文章主要介绍“Spark examples源码分析”,在日常操作中,相信很多人在Spark examples源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spark examples源码分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
SparkSQLExample
private def runBasicDataFrameExample(spark: SparkSession): Unit = {
val df = spark.read.json("hdfs://master:9000/sparkfiles/people.json")
df.show()
import spark.implicits._
df.printSchema()
df.select("name").show()
df.select($"name", $"age" + 1).show()
df.filter($"age" > 21).show()
df.groupBy("age").count().show()
df.createOrReplaceTempView("people")
val sqlDF = spark.sql("SELECT * FROM people")
sqlDF.show()
}
people.json的文件内容如下所示:
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
首先是读取文件,构建一个DataFrame,而DataFrame定义在package object sql当中,其实质上是Dataset[Row]的别名。
之后我们看一下df.show(),它的输出是这个样子的(真不嫌麻烦):
df.printSchema()输出的是json的结构信息:
df.select("name").show(),对于select方法而言,返回的还是一个DataFrame,当中只包含一列name。
df.select($"name", $"age" + 1).show(),返回一个DataFrame,所有人的年龄+1。
df.groupBy("age").count().show(),这行代码我们需要详细说一下,首先,groupBy的返回值是一个RelationalGroupedDataset, A set of methods for aggregations on a DataFrame, created by Dataset.groupBy. 当中提供了min,max,count等等聚合函数。count的结构又是一个DataFrame
最后一段很有趣,可以临时创建一个view,然后用sql进行查询。
df.createOrReplaceTempView("people")
val sqlDF = spark.sql("SELECT * FROM people")
sqlDF.show()
到此,关于“Spark examples源码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!