Является apache arrow.Vector.toArray() нулевой копией в JS

#apache-arrow

#apache-arrow

Вопрос:

То же, что и title: является ли toArray() фактически приведением памяти с нулевой копией? Есть ли способ узнать такого рода вещи, не спрашивая на форумах? Спасибо.

Ответ №1:

Apache arrow поддерживает несколько разных языков, и я не вижу здесь никакого языкового тега. Я собираюсь использовать JavaScript, потому что это единственный язык, который имеет toArray метод для чего-то, называемого a Vector . Если это не JavaScript, пожалуйста, дайте мне знать.

Ответ на ваш вопрос, возможно. Если это вектор типа int, float, time, decimal или timestamp, то это будет нулевая копия, и она просто возвращает окно в закрытую переменную в векторе.

В противном случае, если это другой тип, то он выполняет фактическую копию в памяти.

Источник: https://github.com/apache/arrow/blob/abc786099627ef429109da16b9dc768b4efbd866/js/src/visitor/toarray.ts

Существует также список рассылки пользователя arrow user@arrow.apache.org это, вероятно, самое подходящее место, чтобы задать такой вопрос, чтобы получить самый быстрый ответ.