小编Aru*_*alu的帖子

pyspark-生成日期序列

我正在尝试生成一个日期序列

from pyspark.sql import functions as F

df1 = df.withColumn("start_dt", F.to_date(F.col("start_date"), "yyyy-mm-dd")) \
        .withColumn("end_dt", F.to_date(F.col("end_date"), "yyyy-mm-dd"))

df1.select("start_dt", "end_dt").show()
    
print("type(start_dt)", type("start_dt"))
print("type(end_dt)", type("end_dt"))

df2 = df1.withColumn("lineoffdate", F.expr("""sequence(start_dt,end_dt,1)"""))
Run Code Online (Sandbox Code Playgroud)

下面是输出

+---------------+----------+
|   start_date  |  end_date|
+---------------+----------+
|     2020-02-01|2020-03-21|
+---------------+----------+

type(start_dt)  <class 'str'>
type(end_dt)  <class 'str'>
Run Code Online (Sandbox Code Playgroud)

由于数据类型不匹配,无法解析 'sequence( start_dt, , 1)':序列仅支持整数、时间戳或日期类型;end_dt第 1 行位置 0;

即使将开始 dt 和结束 dt 转换为日期或时间戳之后,我看到列的类型仍然是 str 并在生成日期序列时出现上述错误。

date sequence pyspark aws-glue

3
推荐指数
1
解决办法
3143
查看次数

标签 统计

aws-glue ×1

date ×1

pyspark ×1

sequence ×1