pyspark 笔记 cast 转换列的类型

1 不借助 pyspark.sql.types

python 复制代码
from pyspark.sql.functions import col

data = [("Alice", "28"), ("Bob", "22"), ("Charlie", "30")]
columns = ["name", "age_str"]
df = spark.createDataFrame(data, columns)
df
#DataFrame[name: string, age_str: string]
#创建一个pyspark的DataFrame



#########################以上是源数据,以下是cast之后的结果############################
df.withColumn('cast_col',col('age_str').cast('int'))
#DataFrame[name: string, age_str: string, cast_col: int]

df.withColumn('cast_col',col('age_str').cast('float'))
#DataFrame[name: string, age_str: string, cast_col: float]

2 借助pysparks.sql.types

python 复制代码
from pyspark.sql.types import *
df.withColumn('cast_col',col('age_str').cast(BooleanType()))
#DataFrame[name: string, age_str: string, cast_col: boolean]

|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| BooleanType | |
| ByteType | 字节数据类型,占用一个字节的存储空间 |
| DateType | datetime.date 的数据类型 |
| DecimalType | 这个类型有两个可选参数,分别是 * precision------最大位数 * scale------小数点右侧位数 |
| DoubleType | |
| FloatType | |
| IntegerType | |
| LongType | |
| NullType | |
| ShortType | |
| StringType | |
| TimestampType | datetime.datetime 类型 |
| DayTimeIntervalType | datetime.timedelta类型 |

相关推荐
猹叉叉(学习版)11 分钟前
【系统分析师_知识点整理】 4.计算机网络与分布式系统
笔记·计算机网络·软考·系统分析师
hjxu20169 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
sinat_2554878110 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
observe10111 小时前
输入输出1
笔记
sanshanjianke14 小时前
AI辅助网文创作理论研究笔记(五):测试环境的搭建和一些问题的讨论
人工智能·笔记·ai写作
云边散步14 小时前
godot2D游戏教程系列二(18)
笔记·学习·游戏
C羊驼14 小时前
C语言:随机数
c语言·开发语言·经验分享·笔记·算法
風清掦14 小时前
【江科大STM32学习笔记-09】USART串口协议 - 9.1 STM32 USART串口外设
笔记·stm32·单片机·嵌入式硬件·学习
xian_wwq16 小时前
【学习笔记】看参识模型
笔记·学习
猹叉叉(学习版)16 小时前
【系统分析师_知识点整理】 3.数据库系统
数据库·笔记·软考·系统分析师