PySpark 小白教程 (二) PySpark SQL 简介

PySpark SQL 简介

PySpark 是 Apache Spark 的 Python API,允许通过 Python 脚本进行大数据处理和分析。PySpark SQL 是 PySpark 的一个模块,用于处理结构化数据。它提供了与 SQL 语法相似的 DataFrame API,使数据工程师和数据科学家能够轻松地执行各种数据操作。

入门指南

要开始使用 PySpark SQL,您需要先安装 PySpark。可以通过以下命令安装:

pip install pyspark

安装完成后,可以创建一个 SparkSession,这是所有 Spark 功能的入口点:

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder \.appName("PySpark SQL 基本操作") \.getOrCreate()
核心类

以下是 PySpark SQL 中的一些核心类:

  • SparkSession: 提供了与 Spark 交互的入口点。
  • DataFrame: 是分布式数据集,类似于关系数据库中的表。
  • Column: 代表 DataFrame 中的列,用于表达数据操作。
  • Row: 代表 DataFrame 中的行。
  • GroupData: 表示分组后的数据,允许对分组数据进行聚合操作。
基本操作
  1. 创建 DataFrame:
    可以从各种数据源(如 CSV、JSON、数据库等)创建 DataFrame:

    df = spark.read.csv("data.csv", header=True, inferSchema=True)
    df.show()
    
  2. 选择列:
    使用 select 方法选择所需的列:

    df.select("name", "age").show()
    
  3. 过滤数据:
    使用 filter 方法进行数据过滤:

    df.filter(df["age"] > 30).show()
    
  4. 分组聚合:
    使用 groupByagg 方法进行数据分组和聚合:

    df.groupBy("department").agg({"salary": "avg"}).show()
    
  5. SQL 查询:
    可以直接在 DataFrame 上执行 SQL 查询:

    df.createOrReplaceTempView("employees")
    spark.sql("SELECT * FROM employees WHERE age > 30").show()
    
SparkSession 常用方法
  • read: 读取数据源,生成 DataFrame。
  • readStream: 读取流数据源,生成流 DataFrame。
  • sql: 执行 SQL 查询。
  • createDataFrame: 从 RDD、列表等创建 DataFrame。
  • table: 访问临时或持久表。
DataFrame 常用方法
  • show: 显示 DataFrame 的内容。
  • select: 选择特定的列。
  • filter: 过滤行。
  • groupBy: 分组数据。
  • agg: 聚合操作。
  • join: 连接两个 DataFrame。

通过这些功能,PySpark SQL 提供了强大的工具来处理和分析大规模数据,使数据处理变得更加高效和灵活。

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

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

相关文章

云服务器安装宝塔Linux面板全流程,新手教程!

云服务器如何宝塔Linux面板?阿小云以阿里云服务器为例安装宝塔Linux面板全流程,非常简单: 使用阿里云服务器安装宝塔面板教程,阿里云服务器网以CentOS操作系统为例,安装宝塔Linux面板,先远程连接到云服务器…

UML静态图-类图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 一、类图的表示法 类图(Cla…

轴承阀门5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

轴承阀门5G智能工厂工业物联数字孪生平台作为其中的佼佼者,以其高效、智能、灵活的特点,为制造业的数字化转型提供了强有力的支撑。数字孪生技术,作为智能制造的重要一环,通过构建虚拟与现实相结合的数字化模型,实现了…

离散数学答疑 1

全功能连接词组: 最小全功能联结词组: C:祈使句 6->8是叫条件转化(置换)吗 反证法: 结论取反作为条件,并且在推理过程中,既推出有B也有反B,则推理成功 反证法算是间…

轻松追剧不费力:短剧小程序引领观剧新潮流

随着时代的进步和科技的发展,人们的娱乐方式也在不断变化。如今,短视频、短剧等碎片化内容正逐渐成为人们日常生活中的一部分。而短剧小程序,以其便捷、高效、内容丰富的特点,正在引领一场观剧新潮流。 一、短剧小程序的崛起 在快…

能获取淘宝商品简化链接的浏览器书签

零.冗长的商品链接 访问网页版本淘宝时,浏览器的地址栏显示的链接太长就像这样(此链接非真实商品): 于是使用如下方法 一.使用浏览器书签获取淘宝商品简化链接 1.新建书签 Chrome - 打开书签管理器(CtrlShiftO) - 左侧选择书签…

vue3 自定义 v-model(无参数和带参数)【setup版】(两种方案)

vue2 自定义 v-model 详见 https://sunshinehu.blog.csdn.net/article/details/136942322 vue3 自定义 v-model【方案一】 子组件 Child.vue <script setup> defineProps(["modelValue"]); const emits defineEmits(); </script><template><i…

SAP 物料主数据 PRD覆盖QAS实现-BP同步

BP分客商 客户分基本数据KNA1 角色数据 BUT100 地址数据 adrc &#xff0c;BUT021_FS 公司数据KNB1 销售视图数据 KNVV 合作伙伴 KNVP 税 KNVI 标识数据 dfkkbptaxnum 采购数据 LFM1 采购公司数据 lfb1 FORM FRM_SYNBP.DATA:LTOKEN TYPE STRING.DATA: LL_L…

【python - 函数】

一、纯函数和非纯函数 纯函数&#xff08;Pure functions&#xff09;&#xff1a;函数有一些输入&#xff08;参数&#xff09;并返回一些输出&#xff08;调用返回结果&#xff09;。 >>> abs(-2) 2 可以将内置函数 abs 描述为接受输入并产生输出的小型机器。 ab…

C# Onnx E2Pose人体关键点检测

C# Onnx E2Pose人体关键点检测 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name&#xff1a;inputimg tensor&#xff1a;Float[1, 3, 512, 512] --------------------------------------------------------------- Outputs ---…

电商API商品数据采集接口||助力电商企业采集商品大数据提高开发效率

提高开发效率&#xff1a;电商API接口允许不同的应用程序之间高效地进行交互&#xff0c;节省了大量的人力物力成本&#xff0c;使得开发者可以将更多时间和精力集中于自身的核心业务。 增加数据安全性&#xff1a;通过对数据进行安全加密&#xff0c;API接口实现了对数据的保护…

JVM参数配置

JVM参数的三种表示方法 在jvm中&#xff0c;jvm虚拟机参数有以下三种表示方法&#xff1a; 标准参数&#xff08;-&#xff09;所有的JVM实现都必须实现这些参数的功能&#xff0c;而且向后兼容非标准参数&#xff08;-X&#xff09;&#xff0c;默认jvm实现这些参数的功能&…

罗永浩创业史!普通人也能逆袭!2024轻资产创业项目!2024普通人的出路! 2024普通人做什么行业赚钱!

罗永浩出身草根&#xff0c;一路打拼至今&#xff0c;虽然屡屡受挫但是从未妥协&#xff0c;罗永浩真正的诠释了什么叫“彪悍的人生不需要解释”&#xff01; 回顾罗永浩的传奇创业史: 1. 从新东方出来做牛博网--失败 2.创办老罗英语培训学校--失败 3.致敬乔布斯做锤子科技-…

写一个盲盒模拟器

最近想写一个小程序&#xff0c;随便写一个玩吧&#xff0c;先想了下功能&#xff1a; 1.有很多盲盒&#xff0c;可以选择模拟开启 2.自定义盲盒&#xff0c;我们可以自定义制作盲盒自己玩 3.用户界面&#xff0c;记录盲盒历史&#xff0c;可以给坏越提意见 所用技术栈&…

django 旅游服务系统-计算机毕业设计源码88939

摘 要 旅游服务系统采用采用django框架、python语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分&#xff0c;管理员管理主要功能包括&#xff1a;首页、轮播图&#xff08;轮播图管理&#xff09;、公告信息管理&#xff08;公告信息&#xff09;、资源管理&…

开源模型应用落地-LangSmith试炼-入门初体验-监控和自动化(五)

一、前言 在许多应用程序中&#xff0c;特别是在大型语言模型(LLM)应用程序中&#xff0c;收集用户反馈以了解应用程序在实际场景中的表现是非常重要的。 LangSmith可以轻松地将用户反馈附加到跟踪数据中。通常最好提供一个简单的机制(如赞成和反对按钮)来收集用户对应用程序响…

for循环

基本语法 语法&#xff1a; for ( /*初始表达式*/; /*条件表达式*/; /*增量表达式*/ ) {//循环代码逻辑; }第一个空&#xff08;初始表达式&#xff09;&#xff1a; 一般声明一个临时变量&#xff0c;用来计数用。 第二个空&#xff08;条件表达式&#xff09;&#xff1a; …

迎接未来:2024年养老新趋势展望

随着全球人口结构的变化和科技的不断进步&#xff0c;养老服务业正在经历前所未有的变革。2024年&#xff0c;我们预见到几个关键的养老新趋势将重塑我们对老年生活的认知和支持方式。以下是对这一年养老新趋势的深入分析与建议&#xff1a; 1. 智慧养老的普及 随着物联网、大…

实体关系图三种对应关系

数据库三种关系&#xff0c;一对一&#xff0c;一对多最普遍。多对多需要拆表。 数据库一对一、一对多、多对多关系_一对多关系-CSDN博客

neo4j入门并使用案例说明

1、neo4j是什么 Neo4j是一个高性能的NoSQL图形数据库&#xff0c;它将结构化数据存储在网络&#xff08;在数学角度称为图&#xff09;上&#xff0c;而不是传统的表中。Neo4j是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。它因其高性能、轻量级、易嵌入和…