pyspark 要处理数据,没有,那就伪造数据 faker 真是个好东西

from faker import Faker
import pandas as pd
gender = ["None","Man","Woman"]fake = Faker()
names = [(fake.first_name(),fake.last_name(),fake.date_of_birth(),fake.random_int(1,99),gender[fake.random_int(1,2)]) for _ in range(1000)]pd.DataFrame(names, columns=["first_name","last_name","birthday","age","gender"]).to_csv("fake_names.csv", index=False)
from pyspark.sql import SparkSession
#字符串处理函数
spark = SparkSession.builder.appName('example').getOrCreate()
df =spark.read.csv("fake_names.csv",header=True,inferSchema=True)
# df.show(3)

1、拼接字符串 concat()  concat_ws()  format_string()
 
from pyspark.sql.functions import concat,concat_ws,format_stringdf.select("first_name","last_name","age",concat(df["first_name"],df['last_name']).alias("concat_result"),concat_ws('#',df["first_name"],df['last_name']).alias("concat_ws_result"),format_string("姓%s名%s年龄%d",df["first_name"],df['last_name'],df['age']).alias("format_string_result")).show(5)
2、字符串的长度和转换大小写 length() lower() upper()
 
from pyspark.sql.functions import length,lower,upperdf.select("first_name",length(df["first_name"]).alias("length_result"),lower(df["first_name"]).alias("lower_result"),upper(df["first_name"]).alias("upper_result")
).show(5)
3、添加常量值到新的列中
 
from pyspark.sql.functions import litdf.withColumn("身份",lit('正式员工')).show(3)
df.withColumn("补贴金额",lit('300')).show(3)df.printSchema()df.withColumn("身份",lit('正式员工')).withColumn("补贴金额",lit('300')).printSchema()
4、去除空格
 
from pyspark.sql.functions import trim,ltrim,rtrim,coldf_new = df.withColumn("new_name",concat(lit(" "),df['first_name'],lit(" ")))df_new.show()
df_new.select("new_name",format_string("#%s#",col("new_name")).alias("source"),format_string("#%s#", ltrim(col("new_name"))).alias("ltrim_result"),format_string("#%s#", rtrim(col("new_name"))).alias("rtrim_result"),format_string("#%s#", trim(col("new_name"))).alias("trim_result")).show(5)
5、正则提取
 
from pyspark.sql.functions import regexp_extractdf.select('birthday',regexp_extract(df['birthday'],r'(\d+)-(\d+)-(\d+)',1).alias('year'),regexp_extract(df['birthday'],r'(\d+)-(\d+)-(\d+)',2).alias('month'),regexp_extract(df['birthday'],r'(\d+)-(\d+)-(\d+)',3).alias('day')).show(5)
6、正则替换
 
from pyspark.sql.functions import regexp_replacedf_new = df.withColumn("姓名",format_string("姓%s 名%s",df['first_name'],df['last_name']))
df_new.show(5)df_new.withColumn("清理姓名",regexp_replace(df_new['姓名'],r'姓|名| ','')).show(5)
7、提取字符串的子串
 
from pyspark.sql.functions import substringdf.select('first_name','birthday',substring(df['birthday'],0,4).alias('year'),substring(df['birthday'],6,2).alias('month'),substring(df['birthday'],-2,2).alias('day'),
).show(5)
8、字符串拆分
 
from pyspark.sql.functions import split,sizedf_new= df.select('birthday',split(df['birthday'],'-').alias('splits'),
)
df_new.show(5)
df_new.printSchema()df_new.select('birthday','splits',df_new['splits'].getItem(0).alias("year"),df_new['splits'].getItem(1).alias("month"),df_new['splits'].getItem(2).alias("day"),size(df_new['splits']).alias('size')
).show(5)

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

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

相关文章

五大经典语音芯片型号及应用场景

在语音芯片领域,这五大语音芯片凭借丰富多样的产品和卓越的性能,占据了重要地位。以下为您详细介绍其五款经典语音芯片型号及其对应的应用场景。​ WTN6170-8S​ WTN6170-8S 属于 OTP 一次性语音芯片。它采用 OTP 工艺,成本能够控制在 1 元以…

机器学习管道:构建高效可靠的AI工作流

在当今数据驱动的世界中,机器学习(ML)已成为推动创新和决策的核心技术。然而,将ML模型从实验环境成功部署到生产环境并非易事。机器学习管道(ML Pipelines)作为一种系统化的解决方案,通过自动化工作流程,显著提高了ML项目的可重复…

浏览器调试核心技术指南:从基础到高级的完全掌握

引言​​ 在现代前端开发中,浏览器调试工具已成为开发者最强大的技术伙伴。根据State of JS 2023的统计数据,​​92.7%的专业开发者​​每天使用浏览器DevTools进行问题诊断和性能优化。然而,多数初级开发者仅能使用不到35%的调试功能。本文将系统解析Chrome/Firefox浏览器…

OpenCV 图像翻转

一、知识点 1、void flip(InputArray src, OutputArray dst, int flipCode); (1)、围绕x轴、y轴或两者同时翻转图像。 (2)、参数说明: src: 输入图像。 dst: 输出图像,大小与类型和src相同。 flipCode: 翻转标志。 0表示绕x轴翻转(上下翻转);…

【动手学深度学习】4.2~4.3 多层感知机的实现

目录 4.2. 多层感知机的从零开始实现1)初始化模型参数2)激活函数3)模型4)损失函数5)训练 4.3. 多层感知机的简洁实现1)模型2)小结 . 4.2. 多层感知机的从零开始实现 现在让我们实现一个多层感…

54-Oracle 23 ai DBMS_HCHECK新改变-从前的hcheck.sql

Oracle Hcheck(Health Check)是Oracle数据库内置的健康监测工具,自动化检查数据库的核心问题,包括数据字典一致性、性能瓶颈、空间使用及安全隐患。本质是数据字典的CT扫描仪,其核心价值在于将“字典逻辑错误”这类灰色…

AI 产品的“嵌点”(Embedded Touchpoints)

核心主题: AI 产品的成功不在于功能的强大与独立,而在于其能否作为“嵌点”(Embedded Touchpoints)无缝融入用户现有的行为流(Flow),消除微小摩擦,在用户真正需要的时机和场景中“无…

如何在WordPress中添加导航菜单?

作为一个用了很多年 WordPress 的用户,我特别清楚导航菜单有多重要。一个清晰的导航菜单能让访问者快速找到他们想要的信息,同时也能提升网站的用户体验。而对于WordPress用户来说,学会如何添加和自定义导航菜单是构建高质量网站的第一步。今…

【pdf】Java代码生成PDF

目录 依赖 创建单元格 表格数据行辅助添加方法 创建表头单元格 创建下划线 创建带下划线的文字 创建PDF 依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.4.2</version> <…

Vite 的“心脏移植”:Rolldown

1. 现状&#xff1a;你搁这儿玩双截棍呢&#xff1f; 现在Vite这逼样&#xff1a;开发用esbuild&#xff0c;生产用Rollup&#xff0c;精分现场是吧&#xff1f;大型项目尼玛启动慢成狗&#xff0c;请求多到炸穿地心&#xff0c;生产/dev环境差异能让你debug到原地升天&#x…

【网络安全】文件上传型XSS攻击解析

引言 文件上传功能作为现代Web应用的核心交互模块&#xff0c;其安全防护水平直接关系到系统的整体安全性。本文基于OWASP、CVE等权威研究&#xff0c;结合2024-2025年最新漏洞案例&#xff0c;系统剖析了文件上传场景下的XSS攻击技术演进路径。研究揭示&#xff1a;云原生架构…

Java 集合框架底层数据结构实现深度解析

Java 集合框架&#xff08;Java Collections Framework, JCF&#xff09;是支撑高效数据处理的核心组件&#xff0c;其底层数据结构的设计直接影响性能与适用场景。本文从线性集合、集合、映射三大体系出发&#xff0c;系统解析ArrayList、LinkedList、HashMap、TreeSet等核心类…

Dify动手实战教程(进阶-知识库:新生入学指南)

目录 进阶-知识库&#xff1a;新生入学指南 1.创建知识库 2.创建Agent 去年agent智能体爆火&#xff0c;我自己也使用了多款智能体产品来搭建agent解决生活中的实际问题&#xff0c;如dify、coze等等。dify作为一个开源的框架得到了大量的应用&#xff0c;如一些需要隐私保护…

Vue3+TypeScript+ Element Plus 从Excel文件导入数据,无后端(点击按钮,选择Excel文件,由前端解析数据)

在 Vue 3 TypeScript Element Plus 中实现文件导入功能&#xff0c;可以通过以下步骤完成&#xff1a; 1. 安装依赖 bash 复制 下载 npm install xlsx # 用于解析Excel文件 npm install types/xlsx -D # TypeScript类型声明 2. 组件实现 vue 复制 下载 <templ…

一些torch函数用法总结

1.torch.nonzero(input, *, as_tupleFalse) 作用&#xff1a;在PyTorch中用于返回输入张量中非零元素的位置索引。 返回值&#xff1a;返回一个张量&#xff0c;每行代表一个非零元素的索引。 参数含义&#xff1a; &#xff08;1&#xff09;input:输入的PyTorch 张量。 …

moments_object_model_3d这么理解

这篇文章是我对这个算子的理解,和三个输出结果分别用在什么地方 算子本身 moments_object_model_3d( : : ObjectModel3D, MomentsToCalculate : Moments) MomentsToCalculate:对应三个可选参数,分别是 1, mean_points: 就是点云在xyz方向上坐标的平均值 2, central_m…

性能测试|数据说话!在SimForge平台上用OpenRadioss进行汽车碰撞仿真,究竟多省时?

Radioss是碰撞仿真领域中十分成熟的有限元仿真软件&#xff0c;可以对工程中许多非线性问题进行求解&#xff0c;例如汽车碰撞、产品跌落、导弹爆炸、流固耦合分析等等。不仅可以提升产品的刚度、强度、碰撞的安全性能等&#xff0c;还可以在降低产品研发成本的同时提升研发效率…

数据结构学习——KMP算法

//KMP算法 #include <iostream> #include <string> #include <vector> #include <cstdlib>using namespace std;//next数组值的推导void getNext(string &str, vector<int>& next){int strlong str.size();//next数组的0位为0next[0]0;…

博士,超28岁,出局!

近日&#xff0c;长沙市望城区《2025年事业引才博士公开引进公告》引发轩然大波——博士岗位年龄要求28周岁及以下&#xff0c;特别优秀者也仅放宽至30周岁。 图源&#xff1a;网络 这份规定让众多"高龄"博士生直呼不合理&#xff0c;并在社交平台掀起激烈讨论。 图源…

使用Nuitka打包Python程序,编译为C提高执行效率

在 Python 的世界里&#xff0c;代码打包与发布一直是开发者关注的重要话题。前面我们介绍了Pyinstaller的使用&#xff0c;尽管 PyInstaller 是最常用的工具之一&#xff0c;但对于性能、安全性、兼容性有更高要求的项目&#xff0c;Nuitka 正迅速成为更优的选择。本文将全面介…