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.mzph.cn/news/85997.shtml

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

相关文章

go 线程限制数量 --chatGPT

问:runTask(names, limit), 遍历启动以names的子名称的工作线程 name测试打印,上限数量是limit, 要求打印所有names gpt: 你可以使用 Go 协程来实现 runTask 函数,该函数会遍历启动以 names 子名称的工作线程,并在达到上限数量 …

【MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制】

文章目录 MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制ACID及如何实现事务隔离级别:MVCC 多版本并发控制MySQL数据库主从复制主从同步延迟怎么处理Redis 读写分离1.什么是主从复制2.读写分离的优点 Redis为什么快呢? MySQL数…

Docker初识

什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到…

Matlab图像处理-模式识别

模式识别 模式识别就是用计算的方法根据样本的特征将样本划分到一定的类别中去。模式识别就是通过计算机用数学技术方法来研究模式的自动处理和判读,把环境与客体统称为“模式”。模式识别以图像处理与计算机视觉、语音语言信息处理、脑网络组、类脑智能等为主要研…

题目 1063: 二级C语言-统计字符

输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数。 样例输入a 1, 样例输出 1 1 1 1 鉴于直接用cin会导致空格无法录入&#xff0c;于是用string的getline函数。 再在对应区间的计数器1就好 #include<iostream> #include<string> …

【每日一题】436. 寻找右区间

436. 寻找右区间 - 力扣&#xff08;LeetCode&#xff09; 给你一个区间数组 intervals &#xff0c;其中 intervals[i] [starti, endi] &#xff0c;且每个 starti 都 不同 。 区间 i 的 右侧区间 可以记作区间 j &#xff0c;并满足 startj > endi &#xff0c;且 startj…

【每日随笔】驾驭人性 ③ ( 胡萝卜 - 用利益让员工离不开你 | 大棒 - 用规则让员工害怕你 | 如何建立制度规则 )

文章目录 一、胡萝卜 - 用利益让员工离不开你二、大棒 - 用规则让员工害怕你三、如何建立制度规则 一、胡萝卜 - 用利益让员工离不开你 上一篇博客 【每日随笔】驾驭人性 ② ( 员工立场问题 | 立场转变 | 吴越同舟 | 老板如何与员工结成利益共同体 ) 中 提到了 , 用利益让员工离…

十几张高清世界地图

十几张高清世界地图 仅供学习&#xff01;

pom.xml中解决“vulnerable dependency maven:org.yaml:snakeyaml:1.33“警告问题

问题 当我们引入依赖的时候&#xff0c;pom文件会有这样的提示&#xff0c;其大概的意思就是 maven:org.yaml:snakeyaml:1.30"表示通过Maven引入了一个潜在的安全漏洞依赖项"org.yaml:snakeyaml:1.30" 解决办法 其实我们就是要更改这个依赖的版本&#xff0c…

PB转纯BS工具

pbtoweb Convert Powerbuilder UI to web Automatically. 源码地址&#xff1a;GitHub - pcwe2002/pbtoweb: automatically convert Powerbuilder UI to web 支持转换控件 Window DataWindow CommandButton CheckBox RadioButton Tab DropdownListbox StaticText EditMask S…

有效保护敏感数据的最佳实践

在当今数据驱动的环境中&#xff0c;数据就是力量&#xff0c;组织仍然高度关注如何利用其数据进行 BI、分析和其他业务驱动计划。 事实上&#xff0c;最近的研究表明&#xff0c;数据领导者的主要动机是对高质量分析洞察的需求&#xff0c;而不是合规性。 然而&#xff0c;…

eNSP基础网络学习-v02

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

git reset origin --hard解决‘Your branch is ahead of ‘origin/xxxx‘ by xx commit.’

git reset origin --hard解决‘Your branch is ahead of origin/xxxx by xx commit.’ 如图&#xff1a; 之前是这么解决的解决git&#xff1a;Your branch is ahead of ‘XXX‘ by X commits-CSDN博客git删除/撤销远已经push到程服务器上某次代码提交场景&#xff1a;不小心把…

忽视日志吃大亏,手把手教你玩转 SpringBoot 日志

一、日志重要吗 程序中的日志重要吗&#xff1f; 在回答这个问题前&#xff0c;笔者先说个事例&#xff1a; ❝ 笔者印象尤深的就是去年某个同事&#xff0c;收到了客户反馈的紧急bug。尽管申请到了日志文件&#xff0c;但因为很多关键步骤没有打印日志&#xff0c;导致排查进…

K8S:pod集群调度及相关操作

文章目录 一.pod集群调度概念1.调度约束( List-Watch组件)2.List-Watch的工作机制&#xff08;1&#xff09;List-Watch的工作机制流程&#xff08;2&#xff09;List-Watch的工作机制图示 3.调度的过程&#xff08;1&#xff09;调度的任务&#xff08;2&#xff09;调度选择p…

vue3项目发布后修改配置文件仍然生效

使用json&#xff0c;并且要用ajax来加载&#xff1b;应用过程中也有一些注意的问题。 有关“vue3项目发布后修改配置文件仍然生效”问题&#xff0c;之前做过一篇笔记《vue项目读取全局配置》。但事实上&#xff0c;那篇笔记的步骤&#xff0c;只解决了项目发布后&#xff0c…

【工具插件类教学】三种常用日期选择UI控件工具

目录 一. DataPicker的简介 二. DateTimePicker的简介 ​三. FlatCalendar的简介 一. DataPicker的简介 一种是常显,一种是按钮控制显示逻辑,可以设置年,月,日。并输出结果

Ubuntu 22.04 快速安装 MySQL 数据库 8.0

Ubuntu 22.04 快速安装 MySQL 数据库 8.0 1. 安装 MySQL2. 配置 MySQL2.1 公网访问2.2 添加用户2.2.1 切换 root 用户2.2.2 链接 MySQL2.2.3 添加新的 MySQL 用户2.2.4 退出 MySQL2.2.5 退出 root 用户 2.3 测试新用户 1. 安装 MySQL sudo apt install mysql-server-8.02. 配置…

【Vue3 源码解析】reactive 全家桶

// 泛型约束&#xff1a;只能传入引用类型 export function reactive<T extends object>(target: T): UnwrapNestedRefs<T> // 判断只读&#xff0c;否则创建reactive响应式对象 export function reactive(target: object) {// if trying to observe a readonly pr…

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows 大家好我是艾西&#xff0c;最近研究了下 l4d2&#xff08;求生之路2&#xff09;这款游戏的搭建以及架设过程。今天就给喜欢l4d2这款游戏的小伙伴们分享下怎么搭建架设一个自己的服务器。毕竟自己当服主是热爱游…