Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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 - Fatal编程技术网

Scala spark-如何有效地从所有选定列都包含空值的数据帧中删除行?

Scala spark-如何有效地从所有选定列都包含空值的数据帧中删除行?,scala,apache-spark,Scala,Apache Spark,我有一些dataframe,有许多列和列名列表。 如何从列表中删除all列中包含null的行?您可以使用df.na.drop并指定all和一系列列名。然后,仅当该行中的每个指定列都为null时,它才会删除该行 val col_seq = Seq("col1", "col2").filter(df.columns.contains(_)) val df2 = if (col_seq.length > 0) df.na.drop("all&qu

我有一些
dataframe
,有许多列和列名列表。

如何从列表中删除
all列中包含
null
的行?

您可以使用
df.na.drop
并指定
all
和一系列列名。然后,仅当该行中的每个指定列都为null时,它才会删除该行

val col_seq = Seq("col1", "col2").filter(df.columns.contains(_))
val df2 = if (col_seq.length > 0) df.na.drop("all", col_seq) else df
“删除该列表中所有列均为空的行”相当于“保留该列表中至少有一列不为空的行”。因此,您可以使用最后一个条件来过滤数据帧:

val df1 = df.filter(colsList.map(col(_).isNotNull).reduce(_ or _))

您可以使用
filter
删除每个列的
null

df.filter(r=>!r.anyNull)

看起来不错。当中不存在这些列时,是否可以不删除dataframe@tomek.xyz您可以添加一个复选框,如编辑后的答案所示。对不起,我指的是列列表为空的情况。是否有任何优雅的方法可以做到这一点?@tomek.xyz请参见编辑后的答案