Фильтровать строки данных для ключей типа карты - PullRequest
0 голосов
/ 02 мая 2018

У меня есть DataFrame со столбцом MapType, и я хочу отфильтровать строки, которые не содержат определенный ключ.

Например, вот мои данные:

val ds = Seq(
     |   (1, Map("foo" -> (1, "a"), "bar" -> (2, "b"))),
     |   (2, Map("foo" -> (3, "c"))),
     |   (3, Map("bar" -> (4, "d")))
     | ).toDF("id", "alpha")

Как бы я отфильтровал только те строки, которые содержат "бар" в качестве ключа? Что если я захочу отфильтровать строки, содержащие "бар" И их значение не равно нулю?

Спасибо!

1 Ответ

0 голосов
/ 02 мая 2018

Вот фильтр, в котором ваша карта содержит ключ «bar» в качестве ключа с ненулевым значением:

dataFrame.filter(col("alpha").getItem("bar").isNotNull)
...