【问题标题】:Change string pattern in a column to list将列中的字符串模式更改为列表
【发布时间】:2019-07-08 11:03:06
【问题描述】:

我有一个带有“b”列的 DF,其模式为 'a|b|c|...|z',如下所示:

from pyspark import Row
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName('DataFrame') \
    .master('local[*]') \
    .getOrCreate()

|  a|          b|           c|    d|
+---+-----------+------------+-----+
|  1|1|2|3|4|5|6|[11, 22, 33]|[foo]|
+---+-----------+------------+-----+

我想将“b”列更改为一个列表,以便接下来对其进行分解并进行额外处理,因此它应该如下所示:

|  a|                 b|           c|    d|
+---+------------------+------------+-----+
|  1|[1, 2, 3, 4, 5, 6]|[11, 22, 33]|[foo]|
+---+------------------+------------+-----+

希望你能帮忙。

【问题讨论】:

  • @giser_yugang 我已经尝试过“df.withColumn("b", split("b", "|"))",但不是我正在寻找的内容:"[1 , |, 2, |, 3, |..."
  • @giser_yugang 后来我尝试了 "df.withColumn("b", split("b", "\|"))" 并且成功了!太好了,谢谢!

标签: python pyspark


【解决方案1】:

感谢@giser_yugang 解决了我的话题:

from pyspark.sql.functions import split

df.withColumn("b", split("b", "\|"))

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 2015-10-24
    • 2015-10-28
    • 2010-12-18
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多