【问题标题】:How can I account for AM/PM in string to DateTime conversion in pyspark?如何在 pyspark 中将字符串中的 AM/PM 解释为 DateTime 转换?
【发布时间】:2018-08-03 22:03:29
【问题描述】:

我的datetime 格式如下:

           visit_dts |web_datetime|
+--------------------+------------+
| 5/1/2018 3:48:14 PM|        null|

根据here 提供的答案,我正在使用以下查询将字符串转换为datetime 格式:

web1 = web1.withColumn("web_datetime", from_unixtime(unix_timestamp(col("visit_dts"), "%mm/%dd/%YY %I:%M:%S %p")))

但它不起作用。任何线索都会很棒。

【问题讨论】:

  • 你需要什么输出
  • 一个新列,其中visit_dts 存储为datetime
  • 你的输出有什么例子吗?
  • 2018 年 5 月 1 日下午 3:48:14 --> 2018 年 5 月 1 日 15:48:14

标签: datetime pyspark


【解决方案1】:

你可以像下面这样来达到你的结果

from pyspark.sql import Row

df = sc.parallelize([Row(visit_dts='5/1/2018 3:48:14 PM')]).toDF()

import pyspark.sql.functions as f

web = df.withColumn("web_datetime", f.from_unixtime(f.unix_timestamp("visit_dts",'MM/dd/yyyy hh:mm:ss aa'),'MM/dd/yyyy HH:mm:ss'))

这应该给你

web.show()

+-------------------+-------------------+
|          visit_dts|       web_datetime|
+-------------------+-------------------+
|5/1/2018 3:48:14 PM|05/01/2018 15:48:14|
+-------------------+-------------------+

【讨论】:

    【解决方案2】:

    这很适合我

    from pyspark.sql.functions import to_timestamp
    df=spark.read.csv(fp,header=True)
    df=df.withColumn('time',to_timestamp("Date","MM/dd/yyyy hh:mm:ss a"))
    df.select("Case Number",'time','Date').show(5,False)
    

    这给了

    +-----------+-------------------+----------------------+
    |Case Number|time               |Date                  |
    +-----------+-------------------+----------------------+
    |HM558301   |2004-01-01 09:00:00|01/01/2004 09:00:00 AM|
    |HM559628   |2001-07-01 00:01:00|07/01/2001 12:01:00 AM|
    |HM561700   |2002-08-01 12:00:00|08/01/2002 12:00:00 PM|
    |HM566703   |2004-07-13 12:00:00|07/13/2004 12:00:00 PM|
    |HM541269   |2004-07-01 06:00:00|07/01/2004 06:00:00 AM|
    +-----------+-------------------+----------------------+
    only showing top 5 rows
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 2011-12-29
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      相关资源
      最近更新 更多