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类型 |

相关推荐
宇寒风暖2 小时前
侯捷 C++ 课程学习笔记:内存管理与工具应用
c++·笔记·学习
云缘若仙2 小时前
directx12 3d+vs2022游戏开发第六章 笔记十一
笔记·directx12 3d
电棍2333 小时前
在wsl环境中配置和开发verilog(一种比较新颖的verilog开发指南)
笔记
非 白4 小时前
【Java】单例模式
java·笔记·单例模式
明阳mark4 小时前
Ansible 学习笔记
笔记·学习·ansible
StickToForever6 小时前
第4章 信息系统架构(六)
经验分享·笔记·学习·职场和发展
东方芷兰10 小时前
伯克利 CS61A 课堂笔记 11 —— Mutability
笔记·python
快下雨了L15 小时前
C++面试笔记(持续更新...)
笔记
柃歌16 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法
JANGHIGH16 小时前
c++ std::list使用笔记
c++·笔记·list