Динамически обслуживать файл при загрузке с ноутбука Jupyter, размещенного снаружи
Я работаю с ноутбуком Jupyter, размещенным на внешнем сервере, то есть пользователь не имеет никакого доступа к серверу, кроме как через свой ноутбук Jupyter. Я ищу способ, с помощью которого пользователь, работающий в таком ноутбуке Jupyter, может загрузить свои результаты в виде файла, который напрямую подается с сервера Jupyter.
Вот небольшой пример, чтобы проиллюстрировать, чего я хочу достичь:
# this code runs inside a Jupyter Notebook
import pandas as pd
testdata = { 'a' : [1,2,3,4],
'b' : ['Hotel', 'Bed', 'Beer', 'TV']}
dataset = pd.DataFrame(testdata)
Я ищу удобный для пользователя способ загрузки этого набора данных (обычно пользователь выполняет большую обработку, изменяя форму, прежде чем он будет готов загрузить данные).
Например, вот так:
mytools.download_dataframe_as_hdf(dataset)
или же
dataset.to_hdf('test.hdf', 'test')
mytools.download_file('test.hdf')
Есть ли встроенная функциональность или аккуратный способ добиться этого?
РЕДАКТИРОВАТЬ: Улучшено простое решение.
С помощью HTML
из IPython.display` позволяет легко отобразить ссылку, если файл существует в файловой системе сервера.
from IPython.display import HTML
HTML('<a href="test.hdf">download hdf</a>')
Тем не менее, я хотел бы найти решение для обслуживания данных через буферизованный поток, то есть, чтобы в первую очередь избегать сброса данных в локальной файловой системе. Какие-нибудь идеи, как эта функциональность могла быть достигнута питонским способом?