Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 删除Spark中的空白行或半空白半空行_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 删除Spark中的空白行或半空白半空行

Scala 删除Spark中的空白行或半空白半空行,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我有一个Spark数据框 id名称地址 1 xyz数控 无效的 …空行。。。。 3 pqr stw 我需要从数据帧中删除第2行和第3行,并需要以下输出 id名称地址 1 xyz数控 3 pqr stw 我试过使用 df1.filter(($"id" =!= "") && ($"id".isNotNull)).filter(($"name" =!= "") && ($"name".isNotNull)) 但是在这里,我需要通过在列上迭代来对每一列执行此操作,是

我有一个Spark数据框

id名称地址
1 xyz数控
无效的
…空行。。。。
3 pqr stw
我需要从数据帧中删除第2行和第3行,并需要以下输出

id名称地址
1 xyz数控
3 pqr stw
我试过使用

df1.filter(($"id" =!= "") && ($"id".isNotNull)).filter(($"name" =!= "") && ($"name".isNotNull))

但是在这里,我需要通过在列上迭代来对每一列执行此操作,是否有一种方法可以在整行级别执行此操作,而不是通过在列上迭代来执行此操作。

您可以使用以下逻辑

import org.apache.spark.sql.functions._
def filterEmpty = udf((cols: mutable.WrappedArray[String]) => cols.map(_.equals("")).contains(true))

df.na.fill("").filter(filterEmpty(array("id", "name", "address")) =!= true).show(false)
其中,
filterEmpty
是一个
udf
函数,如果任何列包含空值,它将返回
true

na.fill(“”
将数据帧中的所有
null
值替换为空值

filter
函数过滤掉不必要的行


我希望答案是有帮助的

看一看问题,迭代数据帧中的所有列。可能重复@Jeremy我可以迭代列…我正在寻找一种转换,它不在单个列上迭代,而是在行的基础上删除。是否有更好的方法来表示
。空行…
?是不是
null,null,null
?因此,你的问题有点不清楚。