Я храню pandas фреймы данных в Redis, сериализуя их, используя pyarrow. Это работает хорошо. Я хочу сделать эти данные доступными для ноутбуков Jupyter через flask. Это прекрасно работает на локальном хосте, но не работает при работе на AWS EB.
Flask код
@app.route('/cacheget/<path:key>', methods=['GET'])
def cacheget(key):
c = mycache()
resp = Response(BytesIO(c.redis().get(key)), mimetype="text/plain", direct_passthrough=True)
resp.headers["key"] = key
resp.headers["type"] = c.redis().get(f"{key}.type")
return resp
Тесты Jupyter на flask на локальном хосте и AWS EB
Я подозреваю, что существует проблема с неполным содержанием байтов, когда его десериализует pyarrow. Однако я не могу увидеть или найти какие-либо доказательства или найти какие-либо другие сообщения, связанные с этим. Я рассматриваю переключение с сериализованных данных Pyarrow на провод к JSON. то есть в flask route преобразуйте сериализованные байты в pandas и затем в json. Это, однако, будет как минимум в 10 раз больше на проводе.
Правильно ли настроены мои заголовки http для этого? Есть ли какие-либо известные проблемы с отправкой байтовых данных, подобных этой, по проводам?