【问题标题】:how to use psyaprk's dataframe to get a withColumn?如何使用 psyaprk 的数据框获取 withColumn?
【发布时间】:2017-10-31 09:39:05
【问题描述】:

我想把2017-03-01 02:00:00点赞改成2017-03-01,但是第一张图是2021=2017+3+1,第二张图是null

【问题讨论】:

  • T_Start 列的数据类型是什么?

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


【解决方案1】:

您可以使用to_date 将时间戳转换为日期。

import pyspark.sql.functions as psf
df1.withColumn("day", psf.to_date("T_START"))

连接不适用于 pyspark 中的 +,您必须使用对列进行操作的函数 concat'-' 应该在 lit 中)。或者concat_ws,它的工作方式类似于python join,用相同的分隔符连接字符串。

monthdayofmonth 将返回整数,你不会有尾随的 0。

【讨论】:

【解决方案2】:

这里有一个解决方案来得到你想要的:

    import pyspark.sql.functions as F
    df = df.withColumn("day", F.udf(lambda x : x.split(" ")[0])(F.col("T_START"))

如果您想将列转换为日期类型,您可以将其转换为:

    import pyspark.sql.types as T
    df = df.withColumn("day", col("day").cast(T.DateType()))

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多