Возвращение .NET POCO в качестве фрейма данных через WebAPI клиенту R - PullRequest
0 голосов
/ 29 марта 2019

Я изучаю, как эффективно возвратить .NET простые старые объекты C # (POCO) клиентам R, использующим WebAPI.Сейчас мы сериализуем JSON, а R-клиент использует httr и jsonfile.

. До сих пор мы успешно перенесли много медленных R-вычислений в .NET, и кажется, что наша оставшаяся медлительностьв сериализации / десериализации и сетевых издержках.Было бы идеально, если бы мы сжимали данные на стороне .NET, используя формат R, который можно легко загрузить, например fst (самый быстрый пакет десериализации R).Тем не менее, я не эксперт в R и не знаю формат файла fst.Я оглянулся и увидел, что F # имеет библиотеку Deedle, управляющую временными рядами и совместимостью с R, но не думаю, что они специально решают этот сценарий.

Это для среды науки о данных, поэтому яоткрыты для всевозможных предложений здесь для дальнейшего ускорения вещей.

1 Ответ

1 голос
/ 29 марта 2019

Я думаю, что есть несколько возможностей, которые могут представлять интерес:

  • Вы можете использовать RDotNet , который позволяет запускать и контролировать процесс R из .NET. Он предоставляет API для оценки кода R, а также для проверки и создания структур данных R, поэтому вы можете избежать некоторых издержек, вызванных сериализацией и WebAPI, путем более непосредственного создания фрейма данных R и вызова R.

  • У Deedle есть плагин для провайдера R-типа (который основан на RDotNet) и уже поставляется с функциональностью для R interop - это поддерживает только некоторые сценарии, но, возможно, стоит взглянуть на это.

  • Если вы хотите придерживаться сериализации, вы можете взглянуть на Apache Arrow , который является эффективным двоичным форматом сериализации для фреймов данных с привязками R и .NET, так что он может быть быстрее, чем JSON, но все же позволит вам сохранить вашу текущую архитектуру.

...