Как разобрать данные OSM паркета? - PullRequest
0 голосов
/ 30 июня 2019

Я хочу разобрать данные паркета с помощью sparkSQL. Я хочу изучить такие данные, как (ключ = "шоссе" и значение = "основной")

Структура данных паркета; | - id: long (nullable = true) | - версия: целое число (nullable = true) | - отметка времени: long (nullable = true) | - changeset: long (nullable = true) | - uid: integer (nullable = true) | - user_sid: binary (nullable = true) | - теги: массив (nullable = true) | | - элемент: struct (содержитNull = правда) | | | - ключ: двоичный (nullable = true) | | | - значение: двоичное (nullable = true) | - узлы: массив (nullable = true) | | - элемент: struct (содержитNull = true) | | | - индекс: целое число (nullable = true) | | | - nodeId: long (nullable = правда)

Пример данных;

+ -------------------- + | теги | + -------------------- + | [[шоссе, проживать ... | | [[шоссе, проживать ... | | [[шоссе, проживать ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, примар ... | | [[шоссе, терция ... | | [[велодорожка: оба, ... | | [[шоссе, второй ... | | [[шоссе, проживать ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, второй ... | | [[шоссе, примар ... | | [[шоссе, проживать ... | | [[шоссе, проживать ... | | [[шоссе, терция ... | + -------------------- +

df_parquet.select('tags').first()
#Output;Row(tags=[Row(key=bytearray(b'highway'), 
value=bytearray(b'residential')), Row(key=bytearray(b'name'), 
value=bytearray(b'Honv\xc3\xa9d utca'))])
...