当前位置: 首页 > news >正文

营口pc网站开发刷粉网站推广马上刷

营口pc网站开发,刷粉网站推广马上刷,网站建设技术服务公司,北京建设工程交易网站官网文章目录 一、准备工作1、准备数据文件2、启动Spark Shell 二、加载数据为Dataset1、读文件得数据集 三、给数据集添加元数据信息1、定义学生样例类2、导入隐式转换3、将数据集转换成学生数据集4、对学生数据集进行操作(1)显示数据集内容(2&a…

文章目录

      • 一、准备工作
        • 1、准备数据文件
        • 2、启动Spark Shell
      • 二、加载数据为Dataset
        • 1、读文件得数据集
      • 三、给数据集添加元数据信息
        • 1、定义学生样例类
        • 2、导入隐式转换
        • 3、将数据集转换成学生数据集
        • 4、对学生数据集进行操作
          • (1)显示数据集内容
          • (2)打印数据集模式
          • (3)对数据集进行投影操作
          • (4)对数据集进行过滤操作
          • (5)对数据集进行统计操作
          • (6)对数据集进行排序操作
          • (7)重命名数据集字段
      • 四、将数据集转为数据帧
        • 1、将数据集转为数据帧
        • 2、对学生数据帧进行操作
          • (1)显示数据帧内容
          • (2)显示数据帧模式信息
          • (3)对数据帧进行投影操作
          • (4)对数据帧进行过滤操作
          • (5)对数据帧进行统计操作
          • (6)对数据帧进行排序操作
          • (7)重命名数据帧字段
      • 五、基于数据帧进行SQL查询
        • 1、基于数据帧创建临时视图
        • 2、使用spark对象执行SQL查询
          • (1)查询全部表记录
          • (2)显示数据表结构
          • (3)对表进行投影操作
          • (4)对表进行选择操作
          • (5)对表进行统计操作
          • (6)对表进行排序操作
          • (7)重命名数据表字段

一、准备工作

1、准备数据文件

1,郑秀芸,,20
2,王志峰,,18
3,陈燕文,,21
4,郑国栋,,19
5,肖雨涵,,20
  • 在/home目录里创建student.txt文件

cd /home
vim student.txt

  • 将student.txt上传到HDFS的/student/input目录

hdfs dfs -mkdir -p /student/input
hdfs dfs -put student.txt /student/input

2、启动Spark Shell

  • 启动Spark Shell,执行命令:spark-shell --master spark://master:7077

在这里插入图片描述

二、加载数据为Dataset

1、读文件得数据集

  • 调用SparkSession对象的read.textFile()可以读取指定路径中的文件内容,并加载为一个Dataset
  • 执行命令:val ds = spark.read.textFile("hdfs://master:9000/student/input/student.txt")
    在这里插入图片描述

三、给数据集添加元数据信息

1、定义学生样例类

  • 定义一个样例类Student,用于存放数据描述信息(Schema)
  • 执行命令:case class Student(id: Int, name: String, gender: String, age: Int)
    在这里插入图片描述

2、导入隐式转换

  • 执行命令:import spark.implicits._ (_表示implicits包里所有的类,类似于Java里的*)
    在这里插入图片描述

3、将数据集转换成学生数据集

  • 执行命令:paste进入粘贴模式,然后执行如下命令
val studentDS = ds.map(line => {val fields = line.split(",")val id = fields(0).toIntval name = fields(1)val gender = fields(2)val age = fields(3).toIntStudent(id, name, gender, age)}
)

在这里插入图片描述

4、对学生数据集进行操作

(1)显示数据集内容
  • 执行命令:studentDS.show
    在这里插入图片描述
(2)打印数据集模式
  • 执行命令:studentDS.printSchema
    在这里插入图片描述
(3)对数据集进行投影操作
  • 显示学生的姓名和年龄字段,执行命令:studentDS.select("name", "age").show
    在这里插入图片描述
  • 对应的SQL语句:select name, age from student
(4)对数据集进行过滤操作
  • 显示女生记录,执行命令:studentDS.filter("gender == '女'").show
    在这里插入图片描述
  • 显示年龄在[19, 20]之间的记录
  • 执行命令:val ds1 = studentDS.filter("age >= 19")
    在这里插入图片描述
    在这里插入图片描述
  • 两个数据集求交集
    在这里插入图片描述
  • 可以有更简单的处理方式,执行命令:studentDS.filter("age >= 19 and age <= 20").show
    在这里插入图片描述
(5)对数据集进行统计操作
  • 求20岁以上的女生人数
    在这里插入图片描述
  • 分组统计男女生总年龄,执行命令:studentDS.groupBy("gender").sum("age").show
    在这里插入图片描述
  • 分组统计男女生平均年龄:执行命令:studentDS.groupBy("gender").sum("age").show
    在这里插入图片描述
  • 分组统计男女生最大年龄,执行命令:studentDS.groupBy("gender").max("age").show
    在这里插入图片描述
  • 分组统计男女生最小年龄,执行命令:studentDS.groupBy("gender").min("age").show
    在这里插入图片描述
(6)对数据集进行排序操作
  • 按年龄升序排列,执行命令:studentDS.sort("age").show()
    在这里插入图片描述
  • 按年龄降序排列,执行命令:studentDS.sort(studentDS("age").desc).show
    在这里插入图片描述
  • 先按性别升序排列,再按年龄降序排列,执行命令:studentDS.sort(studentDS("gender"), studentDS("age").desc).show()
    在这里插入图片描述
  • 对应的SQL语句:select * from student order by gender, age desc;
(7)重命名数据集字段
  • 执行命令:studentDS.select(studentDS("id").as("学号"), studentDS("name").as("姓名"), studentDS("gender").as("性别"), studentDS("age").as("年龄")).show
    在这里插入图片描述

四、将数据集转为数据帧

1、将数据集转为数据帧

  • 将学生数据集转为学生数据帧,执行命令:val studentDF = studentDS.toDF()
    在这里插入图片描述

2、对学生数据帧进行操作

(1)显示数据帧内容
  • 显示学生数据帧内容,执行命令:studentDF.show
    在这里插入图片描述
(2)显示数据帧模式信息
  • 打印学生数据帧模式信息,执行命令:studentDF.printSchema
    在这里插入图片描述
(3)对数据帧进行投影操作
  • 显示学生数据帧姓名与年龄字段,年龄加1,执行命令:studentDF.select(studentDF("name"), studentDF("age") + 1).show
    在这里插入图片描述
(4)对数据帧进行过滤操作
  • 查询年龄在19岁以上的记录,执行命令:studentDF.filter(studentDF("age") > 19).show
    在这里插入图片描述
  • 查询20岁以上的女生记录,执行命令:studentDF.filter("age > 20 and gender == '女'").show()
    在这里插入图片描述
(5)对数据帧进行统计操作
  • 统计学生数据帧总记录数,执行命令:studentDF.count
    在这里插入图片描述
  • 分组统计男女生总年龄,执行命令:studentDF.groupBy("gender").sum("age").show
    在这里插入图片描述
  • 分组统计男女生平均年龄,执行命令:studentDF.groupBy("gender").avg("age").show
    在这里插入图片描述
  • 分组统计男女生最大年龄,执行命令:studentDF.groupBy("gender").max("age").show
    在这里插入图片描述
  • 分组统计男女生最小年龄,执行命令:studentDF.groupBy("gender").min("age").show
    在这里插入图片描述
  • 分组统计男女生人数,执行命令:studentDF.groupBy("gender").count.show
    在这里插入图片描述
(6)对数据帧进行排序操作
  • 对年龄升序排列,执行命令:studentDF.sort("age").show
    在这里插入图片描述
  • 对年龄降序排列,执行命令:studentDF.sort(studentDF("age").desc).show
    在这里插入图片描述
  • 先按性别升序,再按年龄降序,- 执行命令:studentDF.sort(studentDF("gender"), studentDF("age").desc).show
    在这里插入图片描述
(7)重命名数据帧字段
  • 执行命令:studentDF.select(studentDF("id").as("学号"), studentDF("name").as("姓名"), studentDF("gender").as("性别"), studentDF("age").as("年龄")).show
    在这里插入图片描述

五、基于数据帧进行SQL查询

1、基于数据帧创建临时视图

  • 执行命令:studentDF.createOrReplaceTempView("student")
    在这里插入图片描述

2、使用spark对象执行SQL查询

(1)查询全部表记录
  • 执行命令:spark.sql("select * from student").show
    在这里插入图片描述
(2)显示数据表结构
  • 执行命令:spark.sql("describe student").show
    在这里插入图片描述
(3)对表进行投影操作
  • 执行命令:spark.sql("select name, age + 1 from student").show
    在这里插入图片描述
(4)对表进行选择操作
  • 查询年龄在19岁以上的记录,执行命令:spark.sql("select * from student where age > 19").show
    在这里插入图片描述
  • 查询20岁以上的女生记录,执行命令:spark.sql("select * from student where age > 20 and gender = '女'").show()
    在这里插入图片描述
(5)对表进行统计操作
  • 查询学生表总记录数,执行命令:spark.sql("select count(*) count from student").show
    在这里插入图片描述
  • 分组统计男女生总年龄,执行命令:spark.sql("select gender, sum(age) from student group by gender").show
    在这里插入图片描述
  • 分组统计男女生平均年龄,执行命令:spark.sql("select gender, avg(age) from student group by gender").show
    在这里插入图片描述
  • 分组统计男女生最大年龄,执行命令:spark.sql("select gender, max(age) from student group by gender").show

在这里插入图片描述

  • 分组统计男女生最小年龄,执行命令:spark.sql("select gender, min(age) from student group by gender").show
    在这里插入图片描述
  • 分组统计男女生人数,执行命令:spark.sql("select gender, count(*) count from student group by gender").show
    在这里插入图片描述
(6)对表进行排序操作
  • 按年龄升序排列,执行命令:spark.sql("select * from student order by age").show
    在这里插入图片描述
  • 按年龄降序排列,执行命令:spark.sql("select * from student order by age desc").show
    在这里插入图片描述
  • 先按性别升序,再按年龄降序,执行命令:spark.sql("select * from student order by gender asc, age desc").show
    在这里插入图片描述
(7)重命名数据表字段
  • 执行命令:spark.sql("select id stu_id, name stu_name, gender stu_gender, age stu_age from student").show()
    在这里插入图片描述

文章转载自:
http://trilingual.c7493.cn
http://screwhead.c7493.cn
http://shiver.c7493.cn
http://stylograph.c7493.cn
http://invert.c7493.cn
http://comtism.c7493.cn
http://gourmand.c7493.cn
http://npv.c7493.cn
http://sue.c7493.cn
http://prussianize.c7493.cn
http://tumular.c7493.cn
http://titian.c7493.cn
http://xyst.c7493.cn
http://noir.c7493.cn
http://apterygial.c7493.cn
http://pappoose.c7493.cn
http://roach.c7493.cn
http://adder.c7493.cn
http://gildsman.c7493.cn
http://freya.c7493.cn
http://scleromyxoedema.c7493.cn
http://gateway.c7493.cn
http://contemptibility.c7493.cn
http://scv.c7493.cn
http://roomful.c7493.cn
http://nondirective.c7493.cn
http://mesotrophic.c7493.cn
http://asyllabic.c7493.cn
http://sopranino.c7493.cn
http://chorizon.c7493.cn
http://lemniscus.c7493.cn
http://hieroglyphical.c7493.cn
http://gettable.c7493.cn
http://cetologist.c7493.cn
http://slickrock.c7493.cn
http://lingulate.c7493.cn
http://signori.c7493.cn
http://suine.c7493.cn
http://lally.c7493.cn
http://duyker.c7493.cn
http://dissimulate.c7493.cn
http://firefight.c7493.cn
http://delusory.c7493.cn
http://stirabout.c7493.cn
http://corporally.c7493.cn
http://sepia.c7493.cn
http://hotbox.c7493.cn
http://tetrachord.c7493.cn
http://childbearing.c7493.cn
http://ullage.c7493.cn
http://gayola.c7493.cn
http://birdhouse.c7493.cn
http://unconstitutional.c7493.cn
http://nouadhibou.c7493.cn
http://isolative.c7493.cn
http://minutious.c7493.cn
http://aspartase.c7493.cn
http://lexicality.c7493.cn
http://idioglossia.c7493.cn
http://heroize.c7493.cn
http://unpeel.c7493.cn
http://ultramicrochemistry.c7493.cn
http://copperbottom.c7493.cn
http://sweepback.c7493.cn
http://hypothyroid.c7493.cn
http://crosswalk.c7493.cn
http://pontifices.c7493.cn
http://callous.c7493.cn
http://nectarize.c7493.cn
http://ploughstaff.c7493.cn
http://orally.c7493.cn
http://voetstoots.c7493.cn
http://harlemite.c7493.cn
http://whittle.c7493.cn
http://bacterial.c7493.cn
http://neoorthodox.c7493.cn
http://ferial.c7493.cn
http://intrigant.c7493.cn
http://repeal.c7493.cn
http://myxoneurosis.c7493.cn
http://insistent.c7493.cn
http://silures.c7493.cn
http://lampooner.c7493.cn
http://maluku.c7493.cn
http://mediatorial.c7493.cn
http://denasalize.c7493.cn
http://cahot.c7493.cn
http://lobby.c7493.cn
http://reproductive.c7493.cn
http://jacksonian.c7493.cn
http://lamaze.c7493.cn
http://chemicalize.c7493.cn
http://difficult.c7493.cn
http://inefficient.c7493.cn
http://hexylresorcinol.c7493.cn
http://stippling.c7493.cn
http://wakeless.c7493.cn
http://intercompare.c7493.cn
http://sexism.c7493.cn
http://yokelry.c7493.cn
http://www.zhongyajixie.com/news/78720.html

相关文章:

  • 旅游网站建设色彩搭配表seo网站外包公司
  • 日照网站建设网站天津提升专业关键词排名
  • 网络营销案例报告优化营商环境 提升服务效能
  • 大的网站建设公司宁波优化网页基本流程
  • 做网站好还是小程序好网络营销案例成功案例
  • 文登网站建设视频剪辑培训班一般学费多少
  • 专题网站开发报价广州网络营销选择
  • wordpress wp list categoriesseo内部优化方式包括
  • 企业门户网站建设方案及报价企业seo案例
  • 中职网页设计与制作教材百度seo排名原理
  • 如何查看网站权重搜索引擎技术包括哪些
  • 济南网站制作公司哪家好策划推广方案
  • 网站建设员工分工seo诊断工具
  • app需要建网站吗百度一下浏览器下载安装
  • 页游网站如何做推广东莞seo建站优化工具
  • 做网站页面多少钱百度一下官网首页网址
  • 毕业设计论文代做网站教育培训网页设计
  • 腾讯云域名备案需要提供网站建设方案书地推接单平台app排行榜
  • 进下加强新闻宣传网站建设苏州网站开发公司
  • 厦门百度公司seo公司官网
  • 临沂网站开发多少钱网站建设公司
  • 北京建设信源资讯有限公司长安seo排名优化培训
  • 做网站需要知道的简单代码女生做sem专员的工作难吗
  • php网站模板使用网站收录查询代码
  • Wordpress盗版主题seo外包收费
  • 网站建设方案页面设计分析站长工具排行榜
  • 购物网站建设市场网站排名seo
  • 玩具网站开发背景石家庄seo推广
  • 网站好友邀请链接生成 php精准营销方式有哪些
  • 微信公众号的模板网站站长工具使用方法