spark中的isNullOrEmpty函数检查数据框中的列是不是为空或空字符串

Posted

技术标签:

【中文标题】spark中的isNullOrEmpty函数检查数据框中的列是不是为空或空字符串【英文标题】:isNullOrEmpty function in spark to check column in data frame is null or empty stringspark中的isNullOrEmpty函数检查数据框中的列是否为空或空字符串 【发布时间】:2021-09-18 18:17:02 【问题描述】:

如何检查数据框的列是否为空或空 ins spark。

例如

type IdentifiedDataFrame = SourceIdentfier, DataFrame
def splitRequestIntoDFsWithAndWithoutTransactionId(df: DataFrame) : Seq[IdentifiedDataFrame] = 
  seq((DeltaTableStream(RequestWithTransactionId), df.filter(col(RequestLocationCodeColName).isNull
      && col(ServiceNumberColName).isNull
      && col(DateOfServiceColName).isNull
      && col(TransactionIdColName).isNotNull)).
    
      (DeltaTableStream(RequestWithoutTransactionId), df.filter(col(RequestLocationCodeColName).isNotNull
       && col(ServiceNumberColName).isNotNull
       && col(DateOfServiceColName).isNotNull))
      )

注意:此代码仅检查列中的空值,我想同时检查空字符串或空字符串 请帮忙

【问题讨论】:

【参考方案1】:

您可以使用isNull 函数并使用filter 来检查空字符串,如下所示

val columns = List("column1", "column2")

val filter = columns.map(c => isnull(col(c)) || !(col(c) <=> lit("")))
  .reduce(_ and _)

df.filter(filter)

【讨论】:

嗨 Koirala,我在使用 isNull 的地方粘贴了主代码,但现在我必须创建函数并使用 isNullOrEmpty 而不是 isNull,请您帮忙 但这不是你原来的问题,而且标题与内容不符 哦,你能帮帮我吗 我想用 isNullOrEmpty 代替 isNull,用 isNotNullOrEmpty 代替 isNotNull 我是开发新手,我需要这样做。如果你能帮助我,这将非常有帮助

以上是关于spark中的isNullOrEmpty函数检查数据框中的列是不是为空或空字符串的主要内容,如果未能解决你的问题,请参考以下文章

(49)C#里String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别

(49)C#里String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别

C# 使用 String.IsNullOrEmpty 切换

我应该用啥来比较 DBNull ?使用 DBNull.Value 或 ToString().IsNullOrEmpty()

pyspark如何检查给定的spark数据帧是不是已使用inferSchema = True创建

String.IsNullOrEmpty 单子