Pyspark-将特定的字符串转换为日期格式

时间:2020-04-27 08:00:41

标签: pyspark apache-spark-sql

我有一个日期pyspark数据框,其中的字符串列格式为Mon-YY,例如。 “ Jan-17”,我正在尝试将其转换为日期列。 我试图这样做,但没有成功:

df.select(to_timestamp(df.t, 'MON-YY HH:mm:ss').alias('dt'))

是否可以像在SQL中那样进行操作,还是需要编写一个特殊的转换函数?

1 个答案:

答案 0 :(得分:0)

您应该使用有效的Java date format。以下将起作用

df = spark.createDataFrame([("Jan-17 00:00:00",'a'),("Apr-19 00:00:00",'b')], ['t','x'])
df.show(2)
+---------------+---+
|              t|  x|
+---------------+---+
|Jan-17 00:00:00|  a|
|Apr-19 00:00:00|  b|
+---------------+---+
在这种情况下

import pyspark.sql.functions as psf df.select(psf.to_timestamp(psf.col('t'), 'MMM-YY HH:mm:ss').alias('dt')).show(2) +-------------------+ | dt| +-------------------+ |2017-01-01 00:00:00| |2018-12-30 00:00:00| +-------------------+ 将变成export http_proxy=http://<ip>:3128 export https_proxy=http://<ip>:3128

示例

---
- hosts: localhost
  gather_facts: no

  tasks:
  - name: Creating zone kasperstesting123.dk
    azure_rm_dnszone:
      resource_group: poc-rg_publicdns
      name: kasperstesting123.dk
      type: public

转换为时间戳:

TASK [Creating zone kasperstesting123.dk] ****************************************************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error retrieving resource group poc-rg_publicdns - Resource group 'poc-rg_publicdns' could not be found."}