Операция соединения с атрибутами из структур стрелок - PullRequest
0 голосов
/ 23 марта 2020

Предположим, у меня есть json файл с именем 'my_data. json', как показано ниже.

{"a": [1, 2], "b": {"c": true, "d": "1991-02-03"}}
{"a": [3, 4, 5], "b": {"c": false, "d": "2019-04-01"}}

Если мне нужно выполнить операцию соединения на основе атрибута d, могу ли я сделать это напрямую из стрела строит? (или есть ли эффективные альтернативы?) Кроме того, как вложенные атрибуты в формате json отображаются в буферы после преобразования в формат стрелки?

>>> table = json.read_json("my_data.json")
>>> table
pyarrow.Table
a: list<item: int64>
  child 0, item: int64
b: struct<c: bool, d: timestamp[s]>
  child 0, c: bool
  child 1, d: timestamp[s]
>>> table.to_pandas()
           a                                       b
0     [1, 2]   {'c': True, 'd': 1991-02-03 00:00:00}
1  [3, 4, 5]  {'c': False, 'd': 2019-04-01 00:00:00}

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете flatten таблицу до ее преобразования в pandas: https://arrow.apache.org/docs/python/generated/pyarrow.Table.html#pyarrow .Table.flatten

>>> table.flatten().to_pandas()
           a    b.c        b.d
0     [1, 2]   True 1991-02-03
1  [3, 4, 5]  False 2019-04-01

Затем вы можете присоединиться к столбцу b.d или b.c

...