1.我有下面的示例pyspark Dataframe ,并希望从消息列中提取时间,然后将提取时间转换为时间戳类型。
message,class
"2022-10-28 07:46:59,705 one=1 Two=2 Three=3",classA
"2022-10-27 10:03:59,800 four=4 Five=5 Six=6",classB
1.我尝试了以下两种方法,但都不起作用。
路径1:
sparkDF.withColumn("TIMESTAMP", to_timestamp(regexp_extract(col('message'), '(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d+)', 1),"MM-dd-yyyy HH:mm:ss.SSSS"))
路径2:
sparkDF.withColumn("TIMESTAMP", regexp_extract(col('message'), '(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d+)', 1).cast("timestamp")
谁能帮我看看吗?
1条答案
按热度按时间tp5buhyn1#
你可以用
" "
(多个空格) 分割message
字段,然后提取第一个元素。提取的元素可以很容易地转换为时间戳。参见示例