Я читаю файлы Json со следующей схемой:
root
|-- events: struct (nullable = true)
| |-- profile: struct (nullable = true)
| | |-- clusters: struct (nullable = true)
| | | |-- 10: long (nullable = true)
| | | |-- 102: long (nullable = true)
| | | |-- 105: long (nullable = true)
| | | |-- 106: long (nullable = true)
| | | |-- 109: long (nullable = true)
| | | |-- 110: long (nullable = true)
И мне нужно создать информационный кадр из вложенных выборок.
spark.read.format("json").
option("compression","gzip").
load("datamining_20191001-000000_24.json.gz").
select("events.profile.clusters.*").limit(5).show()
Однако схема имеетнемного изменилось, сделав все более хитрым:
root
|-- events: struct (nullable = true)
| |-- profile: struct (nullable = true)
| | |-- segments: struct (nullable = true)
| | | |-- 10: long (nullable = true)
| | | |-- 102: long (nullable = true)
| | | |-- 105: long (nullable = true)
| | | |-- 106: long (nullable = true)
| | | |-- 109: long (nullable = true)
| | | |-- 110: long (nullable = true)
Как я могу изменить свой код таким образом, чтобы искра считывала сегменты и кластеры полей как один и тот же столбец?