Назначьте схему pyarrow для pa.Table.from_pandas ()

У меня есть столбец списка в моем фрейме данных 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. Какой подход лучше?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
1 950
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Другие вопросы по теме