温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spark examples源码分析

发布时间:2021-12-16 16:42:06 来源:亿速云 阅读:169 作者:iii 栏目:云计算

这篇文章主要介绍“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(),它的输出是这个样子的(真不嫌麻烦):

Spark examples源码分析

df.printSchema()输出的是json的结构信息:

Spark examples源码分析

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源码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI