【发布时间】:2017-10-31 09:39:05
【问题描述】:
【问题讨论】:
-
T_Start 列的数据类型是什么?
标签: python timestamp pyspark apache-spark-sql pyspark-sql
【问题讨论】:
标签: python timestamp pyspark apache-spark-sql pyspark-sql
您可以使用to_date 将时间戳转换为日期。
import pyspark.sql.functions as psf
df1.withColumn("day", psf.to_date("T_START"))
连接不适用于 pyspark 中的 +,您必须使用对列进行操作的函数 concat('-' 应该在 lit 中)。或者concat_ws,它的工作方式类似于python join,用相同的分隔符连接字符串。
month 和 dayofmonth 将返回整数,你不会有尾随的 0。
【讨论】:
这里有一个解决方案来得到你想要的:
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()))
【讨论】: