pyspark常用算子总结

news2024/11/23 7:32:31

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

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

from datetime import datetime


date_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.coloradmin.cn/o/1035028.html

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

相关文章

Spring循环依赖大全

本博客挑出出现大部分情况的循环依赖场景进行分析,分析启动会不会报循环依赖的错误! 一、常规的A依赖B,B依赖A,代码如下: Component public class A {Resourceprivate B b; } Component public class B {Resourcepri…

Codeforces Round 898 (Div. 4)

Dashboard - Codeforces Round 898 (Div. 4) - Codeforces F. Money Trees 双指针&#xff08;需要细心&#xff09; #include<bits/stdc.h> using namespace std; const int N 2e5 10; void solve() {int n, k, ans 0, a[N], h[N];cin >> n >> k;for(…

Java基础(五)

前言&#xff1a;本博客主要记录学习网络通信的基本知识以及网络编程的应用。 网络编程 基本的通信架构 CS架构&#xff08;Cilent客户端/Server服务端&#xff09; BS架构&#xff08;Browser浏览器/Server服务端&#xff09; 网络通信三要素 网络通信三要素&#xff1a;…

【02】FISCOBCOS搭建区块链网络

官方文档https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html 第一步. 安装依赖 开发部署工具 build_chain.sh脚本依赖于openssl, curl&#xff0c;根据您使用的操作系统&#xff0c;使用以下命令安装依赖。 sudo apt install -y openssl …

【深度学习实验】前馈神经网络(九):整合训练、评估、预测过程(Runner)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. __init__(初始化) 2. train(训练) 3. evaluate(评估) 4. predict(预测) 5. save_model 6. load_model 7. 代码整合 一、实验介绍 二、实验环境 本系列实验使用…

latexocr安装过程中遇到的问题解决办法

环境要求&#xff1a;需要Python版本3.7&#xff0c;并安装相应依赖文件 具体的详细安装步骤可见我上次写的博文&#xff1a;Mathpix替代者|科研人必备公式识别插件|latexocr安装教程 ‘latexocr‘ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件的相关解决办…

获取文件创建时间

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

Python 运行代码

一、Python运行代码 可以使用三种方式运行Python&#xff0c;如下&#xff1a; 1、交互式 通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码 2、命令行脚本 可以把代码放到文件中&#xff0c;通过python 文件名.py命令执行代码&#xff0c;如下&#xff…

Grafana离线安装部署以及插件安装

Grafana是一个可视化面板&#xff08;Dashboard&#xff09;&#xff0c;有着非常漂亮的图表和布局展示&#xff0c;功能齐全的度量仪表盘和图形编辑器&#xff0c;支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性&#xff1a;灵活丰富的图形…

Idea远程调试Linux服务器(和docker容器)中的Java服务,实测可用

目录 idea远程调试linux上的java服务 idea远程调试linux上docker中的java服务 本地配置 打开设置 添加Remote 环境:java1.8 idea远程调试linux上的java服务 在远程Linux服务器上启动Java应用程序时&#xff0c;请使用以下命令行选项启用调试&#xff1a; java -agentlib:…

R3300L, Q7 ATV Android9固件

R3300L, Q7 ATV Android9固件 固件来源 https://www.znds.com/tv-1239603-1-1.html 之前在恩山上发布过1080p安卓6固件 https://www.right.com.cn/forum/thread-1761250-1-1.html, 这个固件的不足之处就是没有 Google Service Framework, 只能通过 Smart Youtube 之类的第三方…

Mac台式电脑内存清理方法教程

对于一些小白用户&#xff0c;如果觉得以上的清理方法比较复杂却又想要更好的优化Mac电脑内存&#xff0c;专业的系统清理软件是一个不错的选择。比起花几个小时时间浏览文件夹、删除临时文件、缓存和卸载残留。Cleanmymac X&#xff0c;只需单击几下即可完成所有内存清理工作&…

华为云:成就卓越企业,引领智能未来

编辑&#xff1a;阿冒 设计&#xff1a;沐由 “预感总是倏然来临&#xff0c;灵光一现&#xff0c;好像一种确凿无疑的信念在瞬间萌生却无从捕捉。”在其传世的《百年孤独》一书中&#xff0c;加西亚马尔克斯曾经这样写道。 如此笃信却无力的感觉&#xff0c;也让很多急于以数字…

Python_it_heima

P63 list P68 元组 注意&#xff1a;元组内部嵌套的list包含的内容可以修改&#xff0c;但list本身不能修改。 P69 字符串 P71 数据容器&#xff08;序列&#xff09;的切片 P73 集合 P75 字典 字典的常用操作 字典课后练习 P78 类数据容器的总结对比 P79 数据容器的通用操作 不…

ros2发布者节点

没有书看啊&#xff0c;就来看看这个代码吧&#xff1a; 首先&#xff1a;第一个函数&#xff1a;init&#xff0c;通过f12可以知道这个函数共有4个变量&#xff0c;前面2个就这么填&#xff0c;后面2个有默认值&#xff0c;不用管&#xff0c;所以一般这么写就好了。 spin函…

IDEA2023新UI回退老UI

idea2023年发布了新UI&#xff0c;如下所示 但是用起来真心不好用&#xff0c;各种位置也是错乱&#xff0c;用下面方法可以回退老UI

聊聊Spring的Aware接口

文章目录 0.前言1.什么是Aware接口2.Aware接口的设计目的3.详解3.1. ApplicationContextAware我们举个例子来说明 3.2. BeanFactoryAware3.3. BeanNameAware3.4. ServletContextAware3.5. MessageSourceAware3.6. ResourceLoaderAware 4.参考文档 0.前言 背景&#xff1a; 最近…

C语言数组和指针笔试题(三)(一定要看)

目录 字符数组四例题1例题2例题3例题4例题5例题6例题7 结果字符数组五例题1例题2例题3例题4例题5例题6例题7结果字符数组六例题1例题2例题3例题4例题5例题6例题7 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412;个…

建构居住安全生态,鹿客科技2023秋季发布会圆满举办

9月20日&#xff0c;以「Lockin Opening」为主题的2023鹿客秋季发布会在上海隆重举办&#xff0c;面向居住安全领域鹿客带来了最新的高端旗舰智能锁新品、多眸OS1.0、Lockin Care服务以及全联接OPENING计划。此外&#xff0c;现场还邀请了国家机构、合作伙伴、技术专家等业界同…

ai智能生成文章-智能生成文章软件

您是否曾为创作内容而感到头疼不已&#xff1f;是否一直在寻找一种能够帮助您轻松生成高质量文章的解决方案&#xff1f;什么是AI智能生成文章&#xff0c;特别是147SEO智能原创文章生成。这是一种先进的技术&#xff0c;利用人工智能和自然语言处理&#xff0c;能够自动生成各…