У меня возникла проблема с сериализацией буфера IPC в моем приложении C++. Буфер, сериализованный в C++, правильно десериализуется в Python, но в JavaScript происходит сбой из-за ошибки несоответствия байтов метаданных.
Шаги для воспроизведения:
Код C++:
Ожидаемое поведение:
Буфер IPC, сериализованный в C++, должен быть правильно десериализован как в Python, так и в JavaScript.
Фактическое поведение:
p>
Python: десериализация работает правильно, и DataFrame печатается, как ожидалось.
C++: Arrow version 14.0.1
Python: Arrow version 5
JavaScript: Arrow version 14.0.1, Node.js 14
Дополнительная информация:
Схема таблицы включает следующие столбцы: ['o', 'h', ' l', 'c', 'v', 'vw', 'n', 'sma(c)|sma#00000', 'sma(c)|sma#00001' , 't'].
Возможные причины:
Возможно, проблема связана с конфигурацией модуля записи IPC в коде C++.
Может быть несоответствие в том, как версии Arrow обрабатывают потоки IPC между Python и JavaScript.
Шаги, предпринятые для устранения неполадок:
Проверены сериализованные данные в Python, чтобы подтвердить правильность десериализации.
Проверены метаданные и размеры буфера в C++ и Python.
Убедились, что одна и та же версия Arrow используется в средах C++, Python и JavaScript.
Проверено, что одна и та же версия Arrow используется в средах C++, Python и JavaScript.
li>
Помогите определить основную причину этой проблемы и предложить решение.
Компонент(ы)
C++, JavaScript, Python ОБНОВЛЕНИЕ
Я ПРОВЕДИЛ НЕКОТОРЫЙ ЭКСПЕРИМЕНТ И ПОнял, что именно так я анализировал двоичный файл msgpack для извлечения потока. Я использовал двоичный файл в строковом формате вместо Buffer.from(stringBuffer, 'binary')
У меня возникла проблема с сериализацией буфера IPC в моем приложении C++. Буфер, сериализованный в C++, правильно десериализуется в Python, но в JavaScript происходит сбой из-за ошибки несоответствия байтов метаданных. Шаги для воспроизведения: Код C++: [code]arrow::Result DataFrame::toBinary(std::vector columns, std::optional const &index, std::unordered_map const& metadata) const { columns = columns.empty() ? this->columnNames() : columns;
const table = tableFromIPC(binary_data); [/code] Ожидаемое поведение: Буфер IPC, сериализованный в C++, должен быть правильно десериализован как в Python, так и в JavaScript. Фактическое поведение: p> [list] [*]Python: десериализация работает правильно, и DataFrame печатается, как ожидалось. [code]Index(['o', 'h', 'l', 'c', 'v', 'vw', 'n', 'sma (c)|sma#00000', 'sma(c)|sma#00001', 't'], dtype='object') [/code]
[*]JavaScript: десериализация завершается с ошибкой: [code]Error fetching market_data data: Error: Expected to read 131072 metadata bytes, but only read 120532. [/code]
[/list] Сообщения об ошибках: [list] [*]JavaScript: [code] Error fetching market_data data: Error: Expected to read 131072 metadata bytes, but only read 120532. readMetadata message.mjs:99 next message.mjs:48 readMessage message.mjs:57 _readNextMessageAndValidate reader.mjs:321 next reader.mjs:295 readAll reader.mjs:156 tableFromIPC serialization.mjs:29 transformModelData MarketDataProvider.tsx:38 fetchData GenericProvider.tsx:35 [/code]
[/list] Сведения о среде: [code]C++: Arrow version 14.0.1 Python: Arrow version 5 JavaScript: Arrow version 14.0.1, Node.js 14 [/code] Дополнительная информация: [list] [*]Схема таблицы включает следующие столбцы: ['o', 'h', ' l', 'c', 'v', 'vw', 'n', 'sma(c)|sma#00000', 'sma(c)|sma#00001' , 't']. [/list] Возможные причины: [list] [*] Возможно, проблема связана с конфигурацией модуля записи IPC в коде C++. [*]Может быть несоответствие в том, как версии Arrow обрабатывают потоки IPC между Python и JavaScript. [/list] Шаги, предпринятые для устранения неполадок: [list] [*]Проверены сериализованные данные в Python, чтобы подтвердить правильность десериализации. Проверены метаданные и размеры буфера в C++ и Python. [*]Убедились, что одна и та же версия Arrow используется в средах C++, Python и JavaScript. [*]Проверено, что одна и та же версия Arrow используется в средах C++, Python и JavaScript. li> [/list] Помогите определить основную причину этой проблемы и предложить решение. Компонент(ы) C++, JavaScript, Python [b]ОБНОВЛЕНИЕ[/b] Я ПРОВЕДИЛ НЕКОТОРЫЙ ЭКСПЕРИМЕНТ И ПОнял, что именно так я анализировал двоичный файл msgpack для извлечения потока. Я использовал двоичный файл в строковом формате вместо Buffer.from(stringBuffer, 'binary')
У меня возникла проблема с сериализацией буфера IPC в моем приложении C++. Буфер, сериализованный в C++, правильно десериализуется в Python, но в JavaScript происходит сбой с ошибкой несоответствия байтов метаданных.
Шаги для воспроизведения:
Код...
У меня возникла проблема с сериализацией буфера IPC в моем приложении C++. Буфер, сериализованный в C++, правильно десериализуется в Python, но в JavaScript происходит сбой с ошибкой несоответствия байтов метаданных.
Шаги для воспроизведения:
Код...
Я работаю над процедурой, которая изменяет порядок набора элементов div на HTML-странице с помощью JavaScript. Изменение порядка работает правильно.
Чтобы добавить визуальную обратную связь при перемещении элемента div, я использую добавляемый класс...
Я работаю над процедурой, которая изменяет порядок набора элементов div на HTML-странице с помощью JavaScript. Изменение порядка работает правильно.
Чтобы добавить визуальную обратную связь при перемещении элемента div, я использую добавляемый класс...
Хорошо, давний разработчик, но с языками более высокого порядка, такими как C# и Swift. Работаю на родном C++ для аппаратного проекта, над которым работаю, и использую Arduino для его прототипирования. Однако это меня поставило в тупик.