说明
使用 DataFrame 的 .cast() 函数,将字符串类型的日期,转换成 date 类型
语法
DataFrame对象['字段'].cast(类型)
解释:
- 类型:见:spark3.0教程-SparkSQL:数据类型 python部分
例子
'''
通过 api 将字符串类型的日期,转换成date类型
'''
import findspark
findspark.init()
from pyspark.sql import SparkSession
from pyspark.sql.types import *
spark = SparkSession.builder.\
appName("test").\
master("local[*]").\
enableHiveSupport().\
config("spark.sql.shuffle.partitions", "2").\
getOrCreate()
spark.sparkContext.setLogLevel("ERROR")
d = [
("1", "李雷", 20,"1999-09-06"),
("2", "韩梅梅", 21,"1998-09-08")
]
spark.createDataFrame(d).toDF("id","name","age","date").createOrReplaceTempView("student")
df = spark.sql("select * from student")
# 类型转换
df = df.withColumn("date", df['date'].cast(DateType()))
df.show()
df.printSchema()
spark.stop()
执行结果:
+---+------+---+----------+
| id| name|age| date|
+---+------+---+----------+
| 1| 李雷| 20|1999-09-06|
| 2|韩梅梅| 21|1998-09-08|
+---+------+---+----------+
root
|-- id: string (nullable = true)
|-- name: string (nullable = true)
|-- age: long (nullable = true)
|-- date: date (nullable = true)
感谢:
https://blog.csdn.net/qq_34615112/article/details/106949332