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

大型建设网站/全网营销推广 好做吗

大型建设网站,全网营销推广 好做吗,江苏省建设集团有限公司,wordpress 手机发文章文章目录 一、准备工作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()
    在这里插入图片描述

相关文章:

Spark SQL概述、数据帧与数据集

文章目录 一、准备工作1、准备数据文件2、启动Spark Shell 二、加载数据为Dataset1、读文件得数据集 三、给数据集添加元数据信息1、定义学生样例类2、导入隐式转换3、将数据集转换成学生数据集4、对学生数据集进行操作&#xff08;1&#xff09;显示数据集内容&#xff08;2&a…...

c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格

c# cad 二次开发 类库 CAD表格的操作&#xff0c;给CAD添加一个表格 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Colors; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using A…...

单点登录的两种实现方式,分别有啥优缺点?

单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是指在多个应用系统中&#xff0c;用户只需要登录一次&#xff0c;就可以访问所有已授权的系统资源的一种身份认证技术。SSO可以提升用户体验&#xff0c;减少用户密码管理工作量&#xff0c;并加强安全管理…...

opencv_c++学习(二十七)

一、单目相机模型 上图为针孔相机成像原理&#xff0c;蓝色坐标中的O即为镜头光心。成像原理与小孔成像相同。 单目相机映射关系如下&#xff1a; 将上式进行变换&#xff0c;就可以从三位空间映射到2维平面的公式。 相机的畸变公式如下&#xff1a; 二、模型投影函数 vo…...

探查chatGPT插件:Outschool,resume,webhooks

引言 在我们的日常工作和学习中&#xff0c;插件扮演着重要的角色。它们可以帮助我们提高效率&#xff0c;简化复杂的任务。在这篇文章中&#xff0c;我将介绍三个非常有用的插件&#xff1a;Outschool&#xff0c;resume&#xff0c;和webhooks&#xff0c;并通过具体的例子来…...

【学习笔记】Unity基础(七)【uGUI基础、利用render Texture实现小地图功能】

目录 一 Canvas1.1 三种Render Space渲染空间 screen1.2 canvas scaler画布缩放器1.3sprite1.4 sprite packer1.5 unity目录1.6 RuleTile Tilemap1.7 sprite packer1.8 sorting layer 二 rect transform2.1 pivot 中轴 中心点2.2 anchor 锚点2.3 uGUI源代码 三 EventSystem3.1 …...

yolov5配置错误记录

这里是直接没有找到数据集&#xff0c;说明是路径错误。经过设置yaml后&#xff0c; # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: ../autodl-tmp/datasets/neu # dataset root dir tr…...

全平台数据 (数据库) 管理工具 DataCap 1.10.0 发布

当前版本涉及几个主要更新。 DataCap 已发布 发布版本发布时间1.10.02023-05-30 General 修复服务启动默认连接 mongo修复了 sql 模板的 h2 db update_time 和 create_time改进 H2 元数据管理获取类型改进 mysql 元数据管理获取类型固定元数据管理数据页默认为 1重构数据渲染…...

使用Mybatis接口开发

文章目录 目录 前言 公司项目用到了mybatis开发接口,虽然很简单,但是mybatis不是特别熟悉,这里学习一下 一、Mybatis接口绑定的两种方式 1.接口绑定实现方式 就是在接口的方法上加上Select,updateInsertDelete等注解 select注解介绍: 简便,能快速去操作sql,它只需要在mapper…...

数据采集技术的实现原理有哪些?

数据采集技术是指通过各种手段和技术手段&#xff0c;从互联网、移动设备、传感器等各种数据源中获取数据&#xff0c;并将其存储、处理和分析&#xff0c;以便为业务决策和应用提供支持。本文将介绍数据采集技术的实现原理&#xff0c;包括数据采集的基本流程、数据采集技术的…...

2023年数学建模随机森林:基于多个决策树的集成学习方法

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 目录 1. 什么是随机森林? 2. 随机森林的优缺点 3. 随机森林的构建过程...

OpenAI发布最新研究让大模型数学推理直接达到SOTA

&#x1f989; AI新闻 &#x1f680; OpenAI发布最新研究&#xff1a;基于过程奖励的监督方法&#xff0c;让大模型数学推理直接达到SOTA 摘要&#xff1a;OpenAI最新研究基于GPT-4微调&#xff0c;采用过程监督和结果监督两种监督方法&#xff0c;奖励每个正确推理步骤的过程…...

快速检测 GlassFish 任意文件读取漏洞的 Python 脚本

部分数据来源:ChatGPT 引言 当下,互联网安全问题正愈发严重,黑客利用各种漏洞进行攻击的频率也在持续增加。在2015年10月,一位名为“路人甲”的安全研究员在乌云上公开了一个名为“应用服务器glassfish存在通用任意文件读取漏洞”的漏洞(编号:wooyun-2010-0144595),该…...

Docker镜像更新通知器DIUN

什么是 DIUN ? Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序&#xff0c;可作为单个可执行文件和 Docker 映像交付&#xff0c;用于当 Docker 映像在 Docker registry中更新时接收通知。 和老苏之前介绍过的 watchtower 不同&#xff0c;DIUN 只是通知&…...

插件框架PF4J-从理论到实践

PF4J:Plugin Framework for Java 目录 是什么&#xff1f; 不是什么&#xff1f; 特点 组件 主要类 流程概述 spring-pf4j 思考 功能模块化 我对pf4j的封装和使用demo GitHub - chlInGithub/pf4jDemo: pf4j demo 是什么&#xff1f; 开源轻量级的插件框架。通过插件…...

怎么将pdf文件免费转为扫描件

推荐两个工具&#xff0c;也算是给自己记一下 1、手机&#xff1a;扫描全能王APP 太好使了&#xff0c;可以直接拍照并转换为扫描件 不开会员的话会出现水印&#xff0c;因为我都是自己用或者交作业就没开 支持读取相册&#xff0c;一次一张、多张都可以 如果不想要水印也…...

vue+nodejs校园二手物品交易市场网站_xa1i4

。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的校园二手交易市场&#xff0c;使用vue框架&#xff0c;Mysql数据库、nodejs语言进行开发&#xff0c;它的优点代码不能从浏览器查看&#xff0c;保密性非常好&#xff0c;比其他的管理…...

Barra模型因子的构建及应用系列六之Book-to-Price因子

一、摘要 在前期的Barra模型系列文章中&#xff0c;我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子和NonLinear Size因子&#xff0c;并分别创建了对应的单因子策略&#xff0c;其中Size因子和NonLinear Siz因子具有很强的收益能力。本节文章将在该系列…...

【c语言习题】使用链表解决约瑟夫问题

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…...

JVM之类的初始化与类加载机制

类的初始化 clinit 初始化阶段就是执行类构造器方法clinit的过程。此方法不需定义&#xff0c;是javac编译器自动收集类中的所有类变量的赋值动作和静态代码块中的语句合并而来。构造器方法中指令按语句在源文件中出现的顺序执行。clinit不同于类的构造器。(关联&#xff1a;…...

面试专题:java 多线程(1)----synchronized关键字相关问答

在java 多线程 面试中最多问题1.悲观锁和乐观锁&#xff1b;2.synchronized和lock的区别&#xff1b;3.可重入锁和非可重入锁的区别&#xff1b;4.多线程是解决什么问题的&#xff1b;5.线程池解决什么问题的&#xff1b;6.线程池原理&#xff1b;7.线程池使用注意事项&#xf…...

VMware SD-WAN 5.2 发布 - 软件定义的 WAN

VMware SD-WAN 5.2 发布 - 软件定义的 WAN SD-WAN 解决方案的领导者 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-sd-wan-5/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 产品概述 软件定义的 WAN (SD-WAN)…...

Oracle+11g+RAC+PSU_EAM(2)

2.15 解压安装介质 在获取开篇1.2节中提到的安装介质如下&#xff1a; [rootebsrac1 ~]# ls -l -rw-r–r– 1 root root 1358454646 Apr 20 16:22 p13390677_112040_Linux-x86-64_1of7.zip -rw-r–r– 1 root root 1142195302 Apr 20 16:29 p13390677_112040_Linux-x86-64_…...

智能出行 驱动未来|2023 开放原子全球开源峰会 CARSMOS 开源智能出行生态年会即将启幕

由开放原子开源基金会主办&#xff0c;元遨 / CARSMOS 开源智能出行项目组协办&#xff0c;深信科创、Futurewei Technologies、Open Motors、北极雄芯等单位共同承办的 2023 开放原子全球开源峰会 “CARSMOS 开源智能出行生态年会” 将于 6 月 12 日在北京经开区北人亦创国际会…...

Linux:centos:周期性计划任务管理《crontab》

crontab常用基础属性 -e 编辑计划任务 -l 查看计划任务 -r 删除计划任务 -u 指定用户的计划任务 首先创建一个名为test的用户名 crontab时间规定 格式&#xff1a;分钟 小时 日期 月份 星期 命令 分钟-- 0-59整数 小时 -- 0-23整数 日期 -- 1--31 整数 月份 -- 1-12 整数 星期…...

克拉默法则证明(Cramer‘s Rule)

若 n 个方程 n 个未知量构成的非齐次线性方程组&#xff1a; { a 11 x 1 a 12 x 2 . . . a 1 n x n b 1 a 21 x 1 a 22 x 2 . . . a 2 n x n b 2 . . . . . . a n 1 x 1 a n 2 x 2 . . . a n n x n b n \begin{equation*} \begin{cases} a_{11}x_{1} a_ {12}x_{2}…...

【接口防刷】处理方案

【接口防刷】 欢迎使用【接口防刷】常见的处理方案访问次数和频率限制验证码校验登录校验机制数据交互加密异常监测机制附录 欢迎使用【接口防刷】常见的处理方案 接口防刷处理方案是指为了防止恶意攻击或非法数据采集&#xff0c;采取一系列技术措施来保护接口数据的安全和完…...

安装Linux-SUSE操作系统

文章目录 一、安装Linux-SUSE系统1、环境准备2、SUSE 镜像的下载2.1、下载企业服务器2.2、ARM和桌面的ISO 3、安装SUSE4、配置本地 yum 源5、SUSE常用安装命令6、在 SUSE系统上安装mysql数据库步骤&#xff1a;7、破解SUSE系统root密码 一、安装Linux-SUSE系统 1、环境准备 操…...

二、机器人的结构设计

1 、螺丝连接的坚固性 坚固性是机器人能顺利完成指定任务的一个重要条件&#xff0c;无论我们程序设计的如何完美&#xff0c; 如果不能保证机器人具有坚固性和稳定性&#xff0c;就无法保证任务的顺利完成&#xff0c;机器人在运行时如 果发生散架和分裂都会影响其功能的实现…...

UITableView学习笔记

看TableView的资料其实已经蛮久了&#xff0c;一直想写点儿东西&#xff0c;却总是因为各种原因拖延&#xff0c;今天晚上有时间静下心来记录一些最近学习的TableView的知识。下面进入正题&#xff0c;UITableView堪称UIKit里面最复杂的一个控件了&#xff0c;使用起来不算难&a…...