網站首頁 編程語言 正文
背景
在使用dataframe時,我們常常需要依據應用場景,需要將原來一條record 拆分為多行(字段數增加1個,record增加),或者在一個record中根據已有字段拆分為多列(仍是1個record,字段數增加)
拆分為多個字段(多列)
from pyspark.sql import functions
# 假設需要將字段col_1的內容按照‘@’字符拆分為兩個字段
# col_new_1, col_new2
# your_df 為已加載dataframe
split_col = functions.split(your_df['col_1'], '@') # 拆分
your_df = your_df.withColumn('col_new_1', split_col.getItem(0)) # 新增col_new_1字段
your_df = your_df.withColumn('col_new_2', split_col.getItem(1)) # 新增col_new_2字段
拆分為多個record(多行)
from pyspark.sql import functions
# 假設已有字段col_list=[1,2,3],需要按照該字段的每個元素,作為新的一列,且每個元素都為新的一行。舉例如下:
# col_name col_list
# 'name1' [1,2,3]
# ====>
# col_name col_list new_col
# 'name1' [1,2,3] 1
# 'name1' [1,2,3] 2
# 'name1' [1,2,3] 3
# 仍然假設 your_df 為已加載dataframe
your_df = your_df.withColumn('new_col', functions.explode('col_list')) # 拆分,并生成多行
這里個functions.explode和hive中的explode作用類似,可參考
鏈接: json解析中的explode使用
其他
這里還有另外一個問題,如果我們原始數據并沒規律的以@分割的固定格式字段,或者原始數據中并沒有事先準備好的array格式的字段,如何生成呢?——使用udf生成
udf的使用,可以參見pyspark中udf寫法及其使用
原文鏈接:https://blog.csdn.net/Airstudy/article/details/125983835
相關推薦
- 2021-12-26 WebStorm?發布2021.3重大更新新功能介紹_其它綜合
- 2022-05-20 ASP.NET?MVC項目部署方式介紹_基礎應用
- 2023-02-02 C#實現網絡小程序的步驟詳解_C#教程
- 2022-07-16 Linux查看日志的幾種方式
- 2022-06-15 golang?gorm框架數據庫的連接操作示例_Golang
- 2023-05-29 scipy稀疏數組coo_array的實現_python
- 2022-08-10 如何利用SQL語句創建數據庫詳解_數據庫其它
- 2022-10-10 Go?代碼規范錯誤處理示例經驗總結_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支