Как сравнить целочисленные элементы в массиве данных PySpark - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть фрейм данных со схемой, подобной этой:

|-- gs: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- g: struct (nullable = true)
| | | |-- calls: array (nullable = true)
| | | | |-- element: integer (containsNull = true)

последняя строка в этой схеме - это массив / список, где всегда должно быть 2 целых числа, обычно оба 0.

Я передаю это в функцию, где сравниваю массив следующим образом:

((df.gs.g.calls[0] == 0) & (df.gs.g.calls[1] > 0))

, который должен работать так же просто, как

, но это приводит к странным ошибкам:

AnalysisException: вы "не можете разрешить" (gs. g. calls [0] = 0) "из-за несоответствия типов данных: различные типы в '(gs. g. calls [0] = 0) '(array and int)

почему это не работает как простой python

some_list[3] == 4

, который является массивом [int] и int?

Как мне сравнить эти целые числа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...