【问题标题】:return alphanumeric values from column in pyspark dataframe从 pyspark 数据框中的列返回字母数字值
【发布时间】:2021-05-17 22:29:29
【问题描述】:

我有一个 pyspark 数据框 df。它有 2 列,如下所示的示例输入。我想创建一个新的输出数据框,其中包含一个新列“col3”,该列仅包含 col2 中字符串的字母数字值。

我尝试过使用 spark sql 和

regexp_extract('('+col1+')','[^[A-Za-z0-9] ]', 0)

但它只返回 null。

谁能建议如何做到这一点?

输入

df.show()


+----+----+
|col1|col2|
+----+----+
|1   |ab& |
+----+----+
|2   |efg |
+----+----+

输出

+----+----+
|col1|col3|
+----+----+
|1   |ab  |
+----+----+
|2   |efg |
+----+----+

【问题讨论】:

    标签: python-3.x pyspark apache-spark-sql pyspark-dataframes


    【解决方案1】:

    在 spark 中使用 regexp_replace() 函数。

    Example:

    df.show()
    #+----+----+
    #|col1|col2|
    #+----+----+
    #|   1| ab&|
    #|   2| efg|
    #+----+----+
    
    from pyspark.sql.functions import *
    
    df.withColumn("col3",regexp_replace("col2",'[^A-Za-z0-9]','')).show()
    #+----+----+----+
    #|col1|col2|col3|
    #+----+----+----+
    #|   1| ab&|  ab|
    #|   2| efg| efg|
    #+----+----+----+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      相关资源
      最近更新 更多