文件内容课堂总结

Spark SQL是Spark用于结构化数据处理的模块,前身是Shark。Shark基于Hive开发,虽提升了SQL-on-Hadoop效率,但对Hive依赖过多。2014年6月1日Shark项目停止开发,团队将资源投入Spark SQL项目。Spark SQL具有诸多优点,如摆脱对Hive依赖、支持多种数据源、有多种性能优化技术、组件可扩展等
Spark SQL是对Spark Core的封装,老版本中有SQLContext和HiveContext两种SQL查询起始点,SparkSession是最新SQL查询起始点,是SQLContext和HiveContext的组合
Spark SQL特点包括:
易整合:无缝整合SQL查询和Spark编程
统一的数据访问:使用相同方式连接不同数据源
兼容 Hive:在已有仓库上可直接运行SQL或HQL
标准数据连接:通过JDBC或ODBC连接
DataFrame是一种以RDD为基础的分布式数据集,带有schema元信息。与RDD相比,Spark SQL能更好优化其执行计划,提升运行效率。DataFrame类似于传统数据库中的二维表格,支持嵌套数据类型,API友好,门槛较低
DataSet是Spark1.6中添加的新抽象,是DataFrame的扩展。它是分布式数据集合,提供RDD的优势以及Spark SQL优化执行引擎的优点,是强类型的,可以用样例类定义结构信息,用户友好的API风格兼具类型安全检查和查询优化特性,还可以使用功能性转换操作
SparkSession是Spark SQL的入口,创建DataFrame有三种方式:
通过Spark的数据源进行创建,如读取json文件 
从一个存在的RDD进行转换
从Hive Table进行查询返回 
读取JSON文件创建DataFrame后,可对DataFrame创建临时表或全局表,然后通过SQL语句实现查询全表等操作
DataFrame的DSL语法包括:   
创建DataFrame,如通过 spark.read.json 方法读取json文件
查看DataFrame的Schema信息,使用 printSchema 方法 
查看指定列数据,如 select 方法 
涉及运算时,列需使用 $ 或引号表达式
过滤数据使用 filter 方法,分组统计使用 groupBy 和 count 方法
RDD与DataFrame转换需注意:
RDD转换为DataFrame需引入 spark.implicits._ ,可通过样例类或直接操作实现
DataFrame转换为RDD可直接获取内部的RDD
创建DataSet有两种方式: 
使用样例类序列创建,如 Seq(Person("zhangsan",2)).toDS() 
使用基本类型的序列创建,如 Seq(1,2,3,4,5).toDS 
RDD与DataSet转换需要注意:  
SparkSQL能自动将含有case类的RDD转换成DataSet 
DataSet转换为RDD可直接获取内部RDD
DataFrame和DataSet转换方法:
DataFrame可转换为DataSet,如 df.asUser 
DataSet可转换为DataFrame,如 ds.toDF 
RDD、DataFrame、DataSet三者的关系:
共性:都是Spark平台下的分布式弹性数据集,有惰性机制、共同函数、自动缓存运算、分区概念,DataFrame和DataSet可使用模式匹配获取字段值和类型
区别:RDD:一般与spark mllib同时使用,不支持sparksql操作
DataFrame:每一行类型固定为Row,不支持spark mllib操作,支持sparksql操作和一些保存方式
DataSet:和DataFrame拥有相同成员函数,区别在于行数据类型,DataFrame是DataSet的特例

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

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

相关文章

Zotero PDF Translate 翻译插件使用OpenAI API配置教程

PDF Translate:提升 Zotero 内置 PDF 阅读器的翻译功能 “PDF Translate” 是一款为 Zotero 设计的插件,旨在方便用户在 Zotero 内置的 PDF 阅读器中进行划词或段落翻译,辅助阅读外文文献。 一、 安装插件 下载插件: 访问 PDF T…

火山引擎旗下的产品

用户问的是火山引擎旗下的产品,我需要详细列出各个类别下的产品。首先,我得确认火山引擎有哪些主要业务领域,比如云计算、大数据、人工智能这些。然后,每个领域下具体有哪些产品呢?比如云计算方面可能有云服务器、容器…

C/C++程序中实现Python绑定多种技术路线

在C/C程序中实现Python绑定有多种技术路线,选择合适的方法取决于项目需求、性能要求和开发效率。以下是常见的几种方案,按易用性排序: 1. PyBind11(推荐首选) 特点:现代C库,语法简洁&#xff0…

【位运算】消失的两个数字

文章目录 面试题 17.19. 消失的两个数字解题思路 面试题 17.19. 消失的两个数字 面试题 17.19. 消失的两个数字 ​ 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? ​ 以任意…

自然语言处理Hugging Face Transformers

Hugging Face Transformers 是一个基于 PyTorch 和 TensorFlow 的开源库,专注于 最先进的自然语言处理(NLP)模型,如 BERT、GPT、RoBERTa、T5 等。它提供了 预训练模型、微调工具和推理 API,广泛应用于文本分类、机器翻…

vue开发基础流程 (后20)

创建项目命令; 或者 vue create my - vue - router - project这个是创建带路由的项目 22.组件组成 比如说一个页面吧,他三个组件,template就是用来放所有的标签,script用来放业务逻辑,style用来放样式,c…

高性能内存kv数据库Redis

引言 在当今数据驱动的时代,高效的数据存储和检索对于各类应用程序至关重要。Redis(Remote Dictionary Server)作为一款开源的内存键值数据库,凭借其出色的性能、丰富的数据结构和灵活的特性,在众多场景中得到了广泛应…

自动化测试概念篇

文章目录 目录1. 自动化1.1 自动化概念1.1.1 回归测试 1.2 自动化分类1.3 自动化测试金字塔 2. web自动化测试2.1 驱动2.1.1 安装驱动管理2.1.2 selenium库 3. Selenium3.1 一个简单的web自动化示例3.2 selenium驱动浏览器的工作原理 目录 自动化web自动化测试Selenium 1. 自…

《AI大模型应知应会100篇》第17篇:大模型的偏见与公平性问题

第17篇:大模型的偏见与公平性问题 摘要 在人工智能迅速发展的今天,大型语言模型(LLM)已经深入到我们的日常生活和工作中。然而,这些模型并非完美无缺,它们可能携带并放大数据中的偏见,导致不公…

【踩坑】GitHub Actions 运行的 Linux 环境中,文件名是大小写敏感的

在使用 VuePress 搭建个人博客并部署到 GitHub Pages 的过程中,我遇到了一个颇为棘手的问题:本地打包一切正常,但在 GitHub Actions 自动执行打包流程时,却提示找不到 README.md 文件,导致整个流程失败。经过一番深入排…

C# 13新特性 - .NET 9

转载: C# 13 中的新增功能 | Microsoft Learn C# 13 包括以下新增功能。 可以使用最新的 Visual Studio 2022 版本或 .NET 9 SDK 尝试这些功能:Introduced in Visual Studio 2022 Version 17.12 and newer when using C# 13 C# 13 中的新增功能 | Micr…

numpy.ma.masked_where:屏蔽满足条件的数组

1.函数功能 屏蔽满足条件的数组内容,返回值为掩码数组 2.语法结构 np.ma.masked_where(condition, a, copyTrue)3. 参数 参数含义condition屏蔽条件a要操作的数组copy布尔值,取值为True时,结果复制数组(原始数据不变),否则返回…

【Redis】数据结构和内部编码

先来复习一下之前学过的几个基本的全局命令: keys:用来查看匹配规则的keyexists:用来判定执行key是否存在del:删除指定的keyexpire:给key设置过期时间ttl:查询key的过期时间type:查询key对应的…

OBOO鸥柏如何以智能教育室内外触摸屏一体机AI变革硬件

在AI技术蓬勃发展的当下,OBOO鸥柏室外触摸屏一体机通过融入AI科技,为教育领域带来了翻天覆地的变化。这款一体机不仅为高校和大学校园提供了革命性的数字化教学解决方案,更引领了引体向上成绩提升一体机带训室外终端屏幕设备的新潮流。其创新…

从零搭建高并发体育直播网站:架构设计、核心技术与性能优化实战

本文从技术视角拆解体育直播网站开发全流程,涵盖高并发架构设计、低延迟视频流传输、实时弹幕系统实现等核心模块,并附可复用的代码片段与优化方案。适合中高级开发者进阶实战参考。 一、需求分析与技术选型 1. 典型业务场景 核心需求:支持1…

【Python内置函数的深度解析与应用】id

目录 前言:技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现1. 基础身份验证2. 不可变对象优化3. 对象生命周期追踪 运行结果验证 三、性能对比测试方法论量化数据…

3.vtkProp 和vtkProp3D

文章目录 vtkProp 和vtkProp3D使用vtkProp3D使用vtkPro vtkProp 和vtkProp3D vtkProp 和 vtkProp3D 都是VTK(Visualization Toolkit)库中的类,它们用于在渲染场景中表示可视化元素。理解这两个类的区别和用途对于有效地使用VTK进行三维数据可…

【ZYNQ Linux移植】2-获取设备树

0 写在前面 这是一个系列博客,详细介绍如何在 ZYNQ 与 ZYNQ MP 平台上如何移植 Linux 系统。目前网络上的大部分教程都是全程基于 Petalinux 的开发,虽然这样简化了开发流程,但对于初学者深入理解掌握 Linux 是不利的,所以&#x…

基础算法篇(5)(蓝桥杯常考点)—动态规划(C/C++)

文章目录 动态规划前言线性dp路径类dp经典线性dp背包问题分类01背包问题完全背包问题多重背包分组背包问题混合背包问题多维费用的背包问题区间dp 动态规划 前言 在竞赛中,如果遇到动态规划的题目,只要不是经典题型,那么大概率就是以压轴题的…

obsidian写文章的图床设置方法

目标 要达成的需求: 复制到obsidian的图片,自动上传到Picgo配置的图床。可以自定义大小。可以一键下载当前文章的图片到本地。 obsidian配置图床 安装并配置插件 image auto upload plugin,配置信息如下图。 滚轮alt自定义大小 安装并…