2023_Spark_实验十五:自定义法创建Dataframe及SQL操作

news2024/12/29 8:04:32

方式二:SQL方式操作

1.实例化SparkContext和SparkSession对象

2.创建case class Emp样例类,用于定义数据的结构信息

3.通过SparkContext对象读取文件,生成RDD[String]

4.将RDD[String]转换成RDD[Emp]

5.引入spark隐式转换函数(必须引入)

6.将RDD[Emp]转换成DataFrame

7.将DataFrame注册成一张视图或者临时表

8.通过调用SparkSession对象的sql函数,编写sql语句

9.停止资源

10.具体代码如下:


package com.scala.demo.sql



import org.apache.spark.rdd.RDD

import org.apache.spark.sql.{Row, SparkSession}

import org.apache.spark.{SparkConf, SparkContext}

import org.apache.spark.sql.types.{DataType, DataTypes, StructField, StructType}



// 0. 数据分析

// 7499,ALLEN,SALESMAN,7698,1981/2/20,1600,300,30

// 1. 定义Emp样例类

case class Emp(empNo:Int,empName:String,job:String,mgr:String,hiredate:String,sal:Int,comm:String,deptNo:Int)



object Demo02 {

def main(args: Array[String]): Unit = {

// 2. 读取数据将其映射成Row对象

val sc = new SparkContext(newSparkConf().setMaster("local[2]").setAppName("Demo02"))

sc.setLogLevel("WARN")

val mapRdd = sc.textFile("file:///D:\\temp\\emp.csv")

.map(_.split(","))



val rowRDD:RDD[Emp] = mapRdd.map(line => Emp(line(0).toInt, line(1), line(2),line(3), line(4), line(5).toInt, line(6), line(7).toInt))



// 3。创建dataframe

val spark = SparkSession.builder().getOrCreate()

// 引入spark隐式转换函数

import spark.implicits._

// 将RDD转成Dataframe

val dataFrame = rowRDD.toDF



// 4.2 sql语句操作

// 1、将dataframe注册成一张临时表

dataFrame.createOrReplaceTempView("emp")

// 2. 编写sql语句进行操作

spark.sql("select deptNo,sum(sal) as total from emp group by deptNo order by total desc").show()



// 关闭资源

spark.stop()

sc.stop()

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux入门攻坚——3、基础命令学习-文件管理、别名、glob、重定向、管道、用户及组管理、权限管理

文件管理:cp,mv,rm cp:复制命令,copy cp [OPTION]... [-T] SRC DEST cp [OPTION]... SRC... DIRECTORY cp [OPTION]... -t DIRECTORY DEST... 如果目标不存在,新建DEST,并将…

Motorola IPMC761 使用边缘TPU加速神经网络

Motorola IPMC761 使用边缘TPU加速神经网络 人工智能(AI)和机器学习(ML)正在塑造和推进复杂的自动化技术解决方案。将这些功能集成到硬件中,解决方案可以识别图像中的对象,分析和检测模式中的异常或找到关键短语。这些功能对于包括但不限于自动驾驶汽车…

易点易动设备管理平台:高效设备一站式管理助力企业成功

在现代企业运营中,设备管理是一个至关重要的任务。无论是生产设备、办公设备还是信息技术设备,高效的设备管理对于企业的生产效率和运营成本都具有重要影响。然而,传统的设备管理方式往往繁琐且容易出错,给企业带来了许多挑战。为…

为什么STM32的HAL库那么难用?

为什么STM32的HAL库那么难用? 在使用q banks和hell库时,开发速度简直快到让人觉得不可思议。最近我要开发一款三十八千赫兹红外应用。之前从未接触过这。最近很多小伙伴找我,说想要一些HAL库资料,然后我根据自己从业十年经验&…

如何使用本地PHP搭建本地Imagewheel云图床在公网远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

FPGA笔试

1、FPGA结构一般分为三部分:可编程逻辑块(CLB)、可编程I/O模块和可编程内部连线。 2 CPLD的内部连线为连续式布线互连结构,任意一对输入、输出端之间的延时是固定 ;FPGA的内部连线为分段式布线互连结构,各…

RXIDK 2H 1MRK000838-HA 双通道模拟输入/输出本质安全栅

RXIDK 2H 1MRK000838-HA 双通道模拟输入/输出本质安全栅 这是首款采用紧凑型12.5 mm外壳的双通道、双功能AI/AO本质安全屏障。KCD2-SCS系列接口模块的两个通道可针对模拟输入或模拟输出控制信号进行单独配置。它们也是HART兼容的,可用作智能阀门定位器的输出驱动器…

文件改名:一键将文件名称改成跟目录名称一样

在日常工作中,我们经常会遇到需要将文件名称改成与目录名称相同的情况。这样可以让文件和目录的关联更加紧密,方便我们查找和管理。那么,如何实现一键将文件名称改成跟目录名称一样呢?下面就给大家介绍一个高效的文件管理小技巧。…

电动移动设备上亚马逊美国站的合规认证是什么?如何办理?

电动移动设备上亚马逊美国站的合规标准是什么? 亚马逊电动移动设备政策 根据我们的政策,您不能销售的商品 我们需要让买家确信其在亚马逊商城找到的商品均安全、可靠、合规。我们不允许发布和销售不合规商品或禁售商品。出于安全考虑,禁止销…

【LeetCode热题100】--55.跳跃游戏

55.跳跃游戏 方法:贪心 对于数组的任意一个位置y,如何判断它是否可以到达? 只要存在一个位置x,它本身可以到达,并且它跳跃的最大长度为xnums[x],这个值大于等于y,即xnums[x]≥y,那么这个位置y…

L003748-AR 3BSX108237R300 需插入以太网电缆并给设备通电

L003748-AR 3BSX108237R300 需插入以太网电缆并给设备通电 Auto-IP是自动为替换设备分配固定IP地址的最简单、最具成本效益的方法!避免DHCP选项82的复杂性和硬件特定要求。Auto-IP将为您配置一个简单的“即插即用”机制。只需插入以太网电缆并给设备通电。每当您需…

网络安全神器,资深网工必备(全都免费附安装包)

导读: 在一个完美的世界里,信息安全从业人员有无限的安全预算去做排除故障和修复安全漏洞的工作。但是,正如你将要学到的那样,你不需要无限的预算取得到高质量的产品。这里有SearchSecurity.com网站专家Michael Cobb推荐的五个免费…

Unity——数据存储的几种方式

一、PlayerPrefs PlayerPrefs适合用于存储简单的键值对数据 存储的数据会在游戏关闭后依然保持,并且可以在不同场景之间共享,适合用于需要在游戏不同场景之间传递和保持的数据。 它利用key-value的方式将数据保存到本地,跟字典类似。然后通…

【算法|前缀和系列No.3】leetcode LCR 012. 寻找数组的中心下标

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【leetcode)】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

ThinkPHP5小语种学习平台

有需要请加文章底部Q哦 可远程调试 ThinkPHP5小语种学习平台 一 介绍 此小语种学习平台基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。平台角色分为学生,教师和管理员三种。学生注册登录后可观看学习视频,收藏视频&#xf…

mysql查看连接池的命令

查看实时连接的个数 (瞬时值) SHOW STATUS LIKE Threads_connected; 查看具体的链接信息 show full processlist;

直播回顾 | 京东科技研发效能度量的大体系与小实践

9 月 27 日思码逸 DevData Talks 邀请到了京东科技测试架构师刘刚。他以《研发效能度量之大体系小实践》为主题,分享了如何以集团的研发效能度量体系作为指引,在所属部门落地适应自己团队和业务特点的度量体系,并取得有效的改进成果。其中他还…

九.镜头知识之CRA(ChiefRay Angle) 主光线角度

九.镜头知识之CRA(ChiefRay Angle) 主光线角度 文章目录 九.镜头知识之**CRA(ChiefRay Angle) 主光线角度**1.9.1 Sensor接收光能1.9.1.1 CRA 定义1.9.1.2 Lens CRA1.9.1.3 Sensor CRA1.9.2 Lens和Sensor搭配的三个重要参数1.9.2.1 ov7251 cra定义:主光线角度为主光线与平行光…

ubuntu18.04 LTS卸载qtcreator-10.0.2

之前通过命令,通过.run文件,安装了Qt Creator 默认安装路径是/opt/ 卸载 在安装路径下,可以看到QtCreatorUninstaller文件 命令行运行该执行文件,会弹出卸载窗口,记得勾选下面的“仅卸载”

如何在不牺牲质量的情况下降低采购成本?

采购成本对许多企业来说都是一笔不小的开支,要在不降低质量的前提下节省开支总是很难兼顾。 现在,端到端的**采购管理软件**8Manage SRM提供了一整套工具和功能,旨在支持采购最佳实践并优化流程。通过以下方式,该软件可以帮助你降…