【问题标题】:Split variable in PysparkPyspark 中的拆分变量
【发布时间】:2022-11-17 21:16:46
【问题描述】:

我尝试将在 timestamp_value 中找到的 utc 值拆分到名为 utc 的新列中。我尝试使用 Python RegEx,但无法使用。 谢谢您的回答!

这就是我的数据框的样子

+--------+----------------------------+
|machine |timestamp_value             |
+--------+----------------------------+
|1       |2022-01-06T07:47:37.319+0000|
|2       |2022-01-06T07:47:37.319+0000|
|3       |2022-01-06T07:47:37.319+0000|
+--------+----------------------------+

这就是它应该的样子

+--------+----------------------------+-----+
|machine |timestamp_value             |utc  |
+--------+----------------------------------+
|1       |2022-01-06T07:47:37.319     |+0000|
|2       |2022-01-06T07:47:37.319     |+0000|
|3       |2022-01-06T07:47:37.319     |+0000|
+--------+----------------------------------+

【问题讨论】:

    标签: pyspark data-wrangling


    【解决方案1】:

    您可以分别使用 regexp_extractregexp_replace 来做到这一点

    import pyspark.sql.functions as F
    
    (df
     .withColumn('utc', F.regexp_extract('timestamp_value', '.*(+.*)', 1))
     .withColumn('timestamp_value', F.regexp_replace('timestamp_value', '+(.*)', ''))
    ).show(truncate=False)
    
    +-------+-----------------------+-----+
    |machine|timestamp_value        |utc  |
    +-------+-----------------------+-----+
    |1      |2022-01-06T07:47:37.319|+0000|
    |2      |2022-01-06T07:47:37.319|+0000|
    |3      |2022-01-06T07:47:37.319|+0000|
    +-------+-----------------------+-----+
    

    要更好地理解该正则表达式的含义,请查看此 tool

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      相关资源
      最近更新 更多