У меня есть объект:
{
"id": "123",
"col_1": null,
"sub_entities": [
{ "sub_entity_id": "s-1", "col_2": null },
{ "sub_entity_id": "s-2", "col_2": null }
]
}
, и я загрузил его в spark: val entities = spark.read.json("...")
.
entities.filter(size($"sub_entities.col_2") === 0)
ничего не возвращает. Поведение кажется странным, потому что все col_2
являются нулевыми, но нулевое значение считается.
Затем я попытался выбрать col_2
и заметил, что он возвращает массив нулевых значений (в данном случае 2 нулевых значения).
entities.select($"col_1", $"sub_entities.col_2").show(false)
+--------+------------------+
|col_1 |sub_entities.col_2|
+--------+------------------+
|null |[,] |
+--------+------------------+
Как написать запрос, который возвращает только объекты из массива, где col_2 не равно нулю?