首页 > 其他 > 详细

【2020/2/1】寒假自学——学习进度报告8

时间:2020-02-01 22:50:24      阅读:88      评论:0      收藏:0      [点我收藏+]

  开始尝试sparkSQL的尝试编程。


  SparkSQL总体来说就是spark中的hive,但麻烦的一点是spark官网下载的并不自带对hive的支持,所以不能使用外部的hive。之后解决。

  首先创建了一个json文件用来创建DataFrame,内容为:

{ "id":1 , "name":" Ella" , "age":36 }

{ "id":2, "name":"Bob","age":29 }

{ "id":3 , "name":"Jack","age":29 }

{ "id":4 , "name":"Jim","age":28 }

{ "id":4 , "name":"Jim","age":28 }

{ "id":5 , "name":"Damon" }

{ "id":5 , "name":"Damon" } 

  编写程序的开头。

import findspark

findspark.init()

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

  SparkSession是sparksql的入口。

  然后就是可以进行操作。

  显示所有数据:

df=spark.read.json("file:///usr/local/spark/mycode/exp5/employee.json")
df.show()

  技术分享图片

 

   排序:

df = spark.read.json("file:///usr/local/spark/mycode/exp5/employee.json")
df.sort(df.age.desc()).show()

  技术分享图片

   求均值:

df = spark.read.json("file:///usr/local/spark/mycode/exp5/employee.json")
df.groupBy().avg("age").show()

  技术分享图片

   值得一提,python中的dataframe可以直接调用其中的列作为迭代器,但只能作为dataframe函数的参数。看了源代码之后发现dataframe函数和groupBy之后的函数不一样,就想avg、max等函数只有在groupBy之后才能使用,但这时不能使用迭代器(也就是df.age这类),只能使用string。

 

【2020/2/1】寒假自学——学习进度报告8

原文:https://www.cnblogs.com/limitCM/p/12250518.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!