pyspark常用算子总结

欢迎关注微信公众号,更多优质内容会在微信公众号首发

1. pyspark中时间格式的数据转换为字符串格式的时间,示例代码

from datetime import datetimedate_obj = datetime(2023, 7, 2)
formatted_date = date_obj.strftime("%Y-%m-%d %H:%M:%S")print(formatted_date) # 2023-07-02 00:00:00

2. pysoark中打印dataframe中的有哪些列,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, 'Alice', 30), (3, 'Bob', 35)], ['id', 'name', 'age'])# 打印 DataFrame 的列
columns = df.columns
print(columns) # ['id', 'name', 'age']

3. pyspark中选择其中一些列,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, 'Alice', 30), (3, 'Bob', 35)], ['id', 'name', 'age'])# 选择 'name' 和 'age' 列
selected_columns = ['name', 'age']
selected_df = df.select(selected_columns)# 打印选择的列
selected_df.show() 
+-----+---+
| name|age|
+-----+---+
| John| 25|
|Alice| 30|
|  Bob| 35|
+-----+---+

4. pyspark中选择其中一列不是空的行,示例代码

from pyspark.sql import SparkSession
from pyspark.sql.functions import col# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, None, 30), (3, 'Bob', None)], ['id', 'name', 'age'])# 选择 'name' 列不为空的行
selected_df = df.filter(col('name').isNotNull())# 打印选择的行
selected_df.show()
+---+----+---+
| id|name|age|
+---+----+---+
|  1|John| 25|
+---+----+---+

5. pyspark中的dataframe统计有多少行

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, 'Alice', 30), (3, 'Bob', 35)], ['id', 'name', 'age'])# 打印 DataFrame 的行数
row_count = df.count()
print(row_count)
3

6. pyspark的dataframe删除重复行,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John'), (2, 'Alice'), (3, 'Bob'), (4, 'Alice')], ['id', 'name'])# 选择 'name' 列的不重复值
distinct_values = df.select('name').distinct()

7. pyspark中的DataFrame对一列分组统计数量,并添加到原来的dataframe,示例代码

from pyspark.sql import SparkSession
from pyspark.sql.functions import count# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John'), (2, 'Alice'), (3, 'Bob'), (4, 'Alice')], ['id', 'name'])# 对 'name' 列进行分组,并统计每个值的数量
grouped_df = df.groupBy('name').agg(count('*').alias('count'))# 打印分组统计结果
grouped_df.show()
+-----+-----+
| name|count|
+-----+-----+
|  Bob|    1|
|Alice|    2|
| John|    1|
+-----+-----+

8. spark中的DataFrame写入csv,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, 'Alice', 30), (3, 'Bob', 35)], ['id', 'name', 'age'])# 将 DataFrame 写入为 CSV 文件
df.write.csv('path/to/output.csv', header=True)

9. pyspark中的dataframe取前n行,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John', 25), (2, 'Alice', 30), (3, 'Bob', 35)], ['id', 'name', 'age'])# 获取前 10 行
top_10_rows = df.limit(10)# 打印前 10 行
top_10_rows.show()

10. 打印pyspark中的dataframe的某一列的纯文本值,示例代码

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df
df = spark.createDataFrame([(1, 'John'), (2, 'Alice'), (3, 'Bob')], ['id', 'a'])# 选择 'a' 列的纯文本值并打印
text_values = df.select('a').collect()for row in text_values:print(row['a'])
"""
输出
John
Alice
Bob
"""

11. pyspark中用lit给dataframe添加一列,示例代码

from pyspark.sql import SparkSession
from pyspark.sql.functions import lit# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 创建包含常量值的列
df = spark.range(5).select(lit('Hello').alias('message'))# 打印 DataFrame
df.show()
"""
+-------+
|message|
+-------+
|  Hello|
|  Hello|
|  Hello|
|  Hello|
|  Hello|
+-------+
"""

12. 打印pyspark中dataframe中列的数据类型和列名,示例代码1

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df,列名为 column_name
df = spark.createDataFrame([(1, "Hello"), (2, "World"), (3, "Spark")], ["id", "column_name"])# 打印列的数据类型
df.printSchema()
"""
root|-- id: long (nullable = true)|-- column_name: string (nullable = true)
"""

示例代码2

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df,列名为 column_name
df = spark.createDataFrame([(1, "Hello"), (2, "World"), (3, "Spark")], ["id", "column_name"])# 获取列的数据类型
column_data_type = df.dtypes[1][1]# 打印列的数据类型
print(column_data_type)
"""
string
"""

13. pyspark中的dataframe的两列做某种运算并形成新的列

from pyspark.sql import SparkSession
from pyspark.sql.functions import col# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()# 假设您的 DataFrame 名称为 df,包含两列:col_a 和 col_b
data = [(1, 2), (3, 4), (5, 6)]
df = spark.createDataFrame(data, ["col_a", "col_b"])# 将 col_a 列除以 col_b 列,并生成新的列 col_result
df_with_division = df.withColumn("col_result", col("col_a") / col("col_b"))# 打印包含新列的 DataFrame
df_with_division.show()
"""
+-----+-----+------------------+
|col_a|col_b|        col_result|
+-----+-----+------------------+
|    1|    2|               0.5|
|    3|    4|              0.75|
|    5|    6|0.8333333333333334|
+-----+-----+------------------+
"""

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

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

相关文章

MySQL基础—从零开始学习MySQL

01.MySQL课程介绍_哔哩哔哩_bilibili 1、MySQL安装 以管理员身份运行cmd net start mysql80net stop mysql80 客户端连接 1). 方式一:使用MySQL提供的客户端命令行工具 2). 方式二:使用系统自带的命令行工具执行指令 mysql [-h 127.0.0.1] [-P 3…

C++真的是 C加加

📝个人主页:夏目浅石. 📌博客专栏:C的故事 🏠学习社区:夏目友人帐. 文章目录 前言Ⅰ. 函数重载0x00 重载规则0x01 函数重载的原理名字修饰 Ⅱ. 引用0x00 引用的概念0x01 引用和指针区分0x03 引用的本质0x04…

SpringBoot-JWT生成

一、理论 1.配置pom.xml <!-- JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency> 2.加密方式 说明:官网JSON Web Tokens - jwt…

Java实验案例(一)

目录 案例一&#xff1a;买飞机票 案例二&#xff1a;开发验证码 案例三&#xff1a;评委打分 案例四&#xff1a;数字加密 案例五&#xff1a;数组拷贝 案例六&#xff1a;抢红包 案例七&#xff1a;找素数的三种方法 案例八&#xff1a;打印乘法口诀表 案例九&#x…

Python项目Flask ipv6双栈支持改造

一、背景 Flask 是一个微型的(轻量)使用Python 语言开发的 WSGI Web 框架(一组库和模块),基于Werkzeug WSGI工具箱/库和Jinja2 模板引擎,当然,Python的WEB框架还有:Django、Tornado、Webpy,这暂且不提。 Flask使用BSD授权。 Flask也被称为microframework(微框架),F…

【UE 粒子练习】02——使用一些常用的模块来创建粒子

目录 效果 步骤 一、创建材质 二、创建粒子 2.1 必需模块 2.2 初始大小模块 2.3 初始位置模块 2.4 初始速度模块 2.5 生命周期模块 2.6 加速-》恒加速度模块 2.7 生成模块 2.8 生命内颜色模块 2.9 尺寸-》大小随速度模块 2.10 碰撞-》Actor碰撞模块 2.1…

stack与queue的简单封装

前言&#xff1a; stack与queue即栈和队列&#xff0c;先进后出/先进先出的特性我们早已了然于心&#xff0c; 在学习数据结构时&#xff0c;我们利用c语言实现栈与队列&#xff0c;从结构体写起&#xff0c;利用数组或指针表示他们的数据成员&#xff0c;之后再一个个实现他们…

(避开网上复制操作)最详细的树莓派刷机配置(含IP固定、更改国内源的避坑操作、SSH网络登录、VNC远程桌面登录)

一、准备工作 SD卡格式化 二、 树莓派系统环境搭建&#xff08;官方&#xff09; 官方镜像 1.1、 必备的配件 读卡器&#xff0c; 内存卡&#xff08;强烈推荐 32GB 内存卡&#xff0c; #lite 命令行界面版本至少需要 8G&#xff0c; 图形化带桌面版镜像需要 16GB&#xf…

笔试强训Day(一)

T1&#xff1a;组队竞赛 链接&#xff1a;组队竞赛__牛客网 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员…

自己写过比较蠢的代码:从失败中学习的经验

文章目录 引言1. 代码没有注释2. 长函数和复杂逻辑3. 不恰当的变量名4. 重复的代码5. 不适当的异常处理6. 硬编码的敏感信息7. 没有单元测试结论 &#x1f389; 自己写过比较蠢的代码&#xff1a;从失败中学习的经验 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&a…

Postgresql事务测试

参考一个事务中 可以查询自己未提交的数据吗_最详细MySQL事务隔离级别及原理讲解&#xff01;&#xff08;二&#xff09;-CSDN博客 一个事务中 可以查询自己未提交的数据吗_趣说数据库事务隔离级别与原理_weixin_39747293的博客-CSDN博客 【MySql&#xff1a;当前读与快照读…

eNSP基础网络学习-v02

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台&#xff0c;主要对企业网络路由器、交换机进行软件仿真&#xff0c;完美呈现真实设备实景&#xff0c;支持大型网络模拟&#xff0c;让…

stm32之看门狗

STM32 有两个看门狗&#xff0c;独立看门狗和窗口看门狗&#xff0c;独立看门狗又称宠物狗&#xff0c;窗 口看门狗又称警犬。可用来检测和解决由软件错误引起的故障。两个看门狗的原理都是当计数器达到给定的超时值时&#xff0c;产生系统复位&#xff0c;对于窗口型看门狗同…

VMware中安装Ubuntu(2023年)

Ubuntu安装 前言 安装过程中电脑发热时正常的&#xff0c;这个还是稍微有点点大&#xff1b;下载的版本根据自己的喜好来&#xff0c;新版本肯定要比旧版本占用的空间更大&#xff0c;大家自行选择&#xff1b;仅供学习使用的话可以下载成熟稳定的版本&#xff0c;例如16、18…

《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.25.14集群(多主多从)》

一、架构图 如下图所示: 二、环境信息 1、资源下载基于containerd部署容器版kubernetes1.25.14集群资源合集 2、部署规划主机名K8S版本系统版本内核版本IP地址备注k8s-master-121.25.14Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.12master节点 + etcd节点k8s-master-131.…

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

java多线程学习笔记一

一、线程的概述 1.1 线程的相关概念 1.1.1 进程&#xff08;Process&#xff09; 进程&#xff08;Process&#xff09;是计算机的程序关于某数据集合上的一次运行活动&#xff0c;是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为操作系统中正在有运行的一…

Java由浅入深理解线程池设计和原理

目录 1 线程1.1 什么是线程&#xff1f;什么是进程&#xff1f;1.2 java中线程的实现方式有几种?1.3 线程的生命周期是什么&#xff1f; 2 线程存在的问题2.1 一个线程只能执行一个任务2.2 线程执行完后销毁,无法复用2.3 线程过多,导致JVM宕机 3 初识线程池3.1 了解J.U.C3.2 线…

Webpack监视文件修改,自动重新打包文件

方法一&#xff1a;使用watch监视文件变化 在终端中输入以下指令&#xff1a; npx webpack --watch 我们使用这种方法监听文件变化时只会监听我们计算机本地的文件变化&#xff0c;在开发场景中我们的项目是要部署到服务器中的&#xff0c;因此这种方式并不推荐。 方法二&…