pyspark 處理字符串函數

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 正迅速成為更優的選擇。本文將全面介…