我正在学习PySpark,并试图找出两次约会的区别。我尝试了多种格式来获得差异,但我的代码总是返回null。任何指点都将不胜感激。
我尝试将格式转换为unix\u时间戳,
newdf = df.select('date_str', from_unixtime(unix_timestamp('date_to', 'yyyy-MM-dd')).alias('to'))
下一步是将列强制转换为timestamp或DateType()
我试图创建一个函数
timeDiff = (F.unix_timestamp('date_to', format=timeFmt)
- F.unix_timestamp('date_from', format=timeFmt))
df = df.withColumn("Duration", timeDiff)
下面是我尝试执行的代码
df = spark.createDataFrame([("2017â05â13"
,"2017â05â16"), ("2017â05â13","2017â07â23"),
("2017â05â13","2018â05â13")], ['date_from', 'date_to'])
timeFmt = "yyyy-MM-dd"
timeDiff = (F.unix_timestamp('date_to', format=timeFmt)
- F.unix_timestamp('date_from', format=timeFmt))
df = df.withColumn("Duration", timeDiff)
df.show()
dfs_5 = df.withColumn('date_diff', F.datediff(F.to_date(df.date_to), F.to_date(df.date_from)))
dfs_5.show()
newdf = df.select(from_unixtime(unix_timestamp('date_from', 'yyyy-MM-dd')).alias('from'),from_unixtime(unix_timestamp('date_to', 'yyyy-MM-dd')).alias('to'))
newdf.show()
newdf.withColumn("diff_days", F.datediff("from", "to")).show()
我希望列date\u to和date\u from之间存在差异,但我的代码返回null。