You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中拆分timestamp_value字段提取UTC值至新列问题

解决方法

这里提供三种可行的方案,按需选择:

方法1:字符串分割(适合仅含+时区的场景)

直接从右侧按+分割一次,拆分出UTC部分:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'machine': [1,2,3],
    'timestamp_value': ['2022-01-06T07:47:37.319+0000']*3
})

# 拆分列
df[['timestamp_value', 'utc']] = df['timestamp_value'].str.rsplit('+', n=1, expand=True)

方法2:正则表达式(通用场景,支持+/-时区)

用正则匹配末尾的时区标识,提取后再清理原字段:

# 提取UTC列
df['utc'] = df['timestamp_value'].str.extract(r'([+-]\d{4})$')
# 移除原字段中的UTC部分
df['timestamp_value'] = df['timestamp_value'].str.replace(r'[+-]\d{4}$', '', regex=True)

正则说明:([+-]\d{4})$表示匹配字符串末尾的+或-开头的四位数字,确保准确提取时区信息。

方法3:利用datetime类型处理(规范时间场景)

将字符串转为带时区的datetime类型,再提取时区并处理原字段:

# 转为带时区的datetime
df['timestamp_value'] = pd.to_datetime(df['timestamp_value'])
# 提取时区为字符串格式
df['utc'] = df['timestamp_value'].dt.tz.strftime('%z')
# 移除原字段的时区信息并转为字符串
df['timestamp_value'] = df['timestamp_value'].dt.tz_localize(None).astype(str)

内容的提问来源于stack exchange,提问作者Gaaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:40:31