【问题标题】:AssertionError: col should be ColumnAssertionError: col 应该是 Column
【发布时间】:2018-06-02 21:18:43
【问题描述】:

如何在 PySpark 中创建一个新列并用今天的日期填充此列?

这是我尝试过的:

import datetime
now = datetime.datetime.now()
df = df.withColumn("date", str(now)[:10])

我收到此错误:

AssertionError: col 应该是 Column

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-sql


    【解决方案1】:

    如何在 PySpark 中创建一个新列并用今天的日期填充此列?

    已经有这个功能了:

    from pyspark.sql.functions import current_date
    
    df.withColumn("date", current_date().cast("string"))
    

    AssertionError: col 应该是 Column

    使用文字

    from pyspark.sql.functions import lit
    
    df.withColumn("date", lit(str(now)[:10]))
    

    【讨论】:

    • 明白为什么第一个例子不起作用,但不明白为什么第二个例子(带灯的那个)起作用。
    • @jason 因为lit returns Column
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多