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 小时前
抽象代数小述(二之前)
经验分享·笔记·算法·生活·抽象代数
岑梓铭2 小时前
考研408《计算机组成原理》复习笔记,第二章(2)数值数据的表示(浮点数篇)
笔记·考研·408·计算机组成原理
ClearViper33 小时前
Java的多线程笔记
java·开发语言·笔记
珊瑚里的鱼6 小时前
第九讲 | 模板进阶
开发语言·c++·笔记·visualstudio·学习方法·visual studio
shlR6 小时前
Figma 新手教程学习笔记
笔记·学习·figma
陵易居士7 小时前
JVM-类加载子系统
jvm·笔记·学习
狮智先生8 小时前
【学习笔记】点云自动化聚类简要总结
笔记·学习·自动化
愚润求学9 小时前
【Linux】动静态库的使用
linux·运维·服务器·开发语言·c++·笔记
weixin_448119949 小时前
Datawhale 5月llm-universe 第2次笔记
笔记
Dovis(誓平步青云)9 小时前
基于面向对象设计的C++日期推算引擎:精准高效的时间运算实现与运算重载工程化实践
开发语言·c++·经验分享·笔记