【问题标题】:pyspark selecting rows where column content length < x [duplicate]pyspark选择列内容长度< x的行[重复]
【发布时间】:2019-08-10 21:34:54
【问题描述】:

我有一个 pyspark 数据框,其中一列的内容是字符串类型。我只想选择该列上字符串长度大于 5 的行。我尝试使用 size 函数,但它只适用于数组。

from pyspark.sql.functions import col, explode, regexp_replace, size

new_df = df.select("col_1", explode(col("col_2")) \
    .select("col_1", "col_2") \
    .where(col("col_1").isNotNull()) \
    .where(size(col("col_2")) <= 5) \
    .distinct()

有什么方法可以在不使用 UDF 的情况下按列内容长度进行选择?

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql pyspark-sql


    【解决方案1】:

    正如已经提到的here。您可以使用length。 因此,您的示例应如下所示:

    from pyspark.sql.functions import col, explode, regexp_replace, length
    
    new_df = df.select("col_1", explode(col("col_2")) \
        .select("col_1", "col_2") \
        .where(col("col_1").isNotNull()) \
        .where(length(col("col_2")) <= 5) \
        .distinct()
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2018-04-18
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2011-12-06
      相关资源
      最近更新 更多