У меня есть столбец списка в моем фрейме данных pandas вместе с столбцами int, string и т. д. Я могу преобразовывать столбцы типа string, date, int и timestamp. Я хочу знать, как применить array () к столбцу списка.
fields = [
pa.field('id', pa.int64()),
pa.field('secondaryid', pa.int64()),
pa.field('date', pa.timestamp('ms')),
pa.field('emails', pa.array())
]
my_schema = pa.schema(fields)
table = pa.Table.from_pandas(sample_df, schema=my_schema, preserve_index=False)
Он запрашивает передачу объекта для массива. Я хочу знать, как применить схему для массива строки типа к столбцу «электронные письма», имея в виду, что я записывал таблицу в формат паркета, поэтому пустой массив приведет к SegFault. Какой подход лучше?






Вам необходимо поставить pa.list_(pa.string()) вместо pa.array. pa.array - это конструктор для экземпляра pyarrow.Array. Это основной объект, содержащий данные любого типа. В отличие от этого, pa.list_() является конструктором для типа LIST. В качестве единственного аргумента он должен иметь тип, из которого состоят элементы списка.
В терминах Эрроу множество - это самая простая структура, содержащая типизированные данные. Он состоит из ряда буферов непрерывной памяти. Первичный буфер - это всегда битовая карта, указывающая, является ли строка допустимой или пустой. В зависимости от типа массива. Для этих данных будет один буфер (например, для целых чисел) или несколько буферов для более сложных типов. Напротив, термин список используется для описания того, какие данные хранятся в массиве. СПИСОК означает, что одна ячейка / строка в столбце может содержать несколько значений одного и того же типа.