我有一个带有MapType列的DataFrame,我希望过滤不包含某个键的行。
例如,这是我的数据:
val ds = Seq(
| (1, Map("foo" -> (1, "a"), "bar" -> (2, "b"))),
| (2, Map("foo" -> (3, "c"))),
| (3, Map("bar" -> (4, "d")))
| ).toDF("id", "alpha")
如何仅过滤包含“bar”作为键的行?如果我想过滤包含“bar”的行并且它们的值不为空,该怎么办?
谢谢!
答案 0 :(得分:1)
这是一个过滤器,其中地图包含键“bar”作为具有非空值的键:
dataFrame.filter(col("alpha").getItem("bar").isNotNull)