我在Spark Scala中有以下小型演示DataFrame:
Type Description
0
1 Action 1
1 Drop: Action 1
2 Action2
我需要在Description
列中删除所有包含“ Drop”的行,同时将行保留为空Description
。
预期结果:
Type Description
0
1 Action 1
2 Action2
如果运行下面显示的代码,则会得到此输出(具有空Description
的行将被删除)。
Type Description
1 Action 1
2 Action2
我的代码:
df
.na.fill("Description", Seq("Error"))
.filter(!(col("Description").contains("Drop")))
.select(col("Type"),col("Description"))
.distinct
.sort(col("Type").asc)
.show()
答案 0 :(得分:1)
您为na.fill
提供的参数不正确。如果您查看所使用方法的签名,则:
def fill(value: String, cols: Seq[String]): DataFrame
“第一个参数”是value
,它替换了null
列,“第二个参数”是list of columns
用于替换null
。因此,将您的na.fill
代码行替换为以下代码将按预期工作:
na.fill("Error", Array("Description"))