Autore della brocca qui: la brocca funziona bene. Ho provato quanto segue e funziona:
from jug import TaskGenerator
import pandas as pd
import numpy as np
@TaskGenerator
def gendata():
return pd.DataFrame(np.arange(343440).reshape((10,-1)))
@TaskGenerator
def compute(x):
return x.mean()
y = compute(gendata())
Non è così efficiente come potrebbe essere il solo utilizza pickle
internamente per l'DataFrame
(anche se comprime al volo, quindi non è orribile in termini di uso della memoria, solo più lento di quanto potrebbe essere).
sarei aperto a un cambiamento che li memorizza come un caso speciale come brocca attualmente fa per gli array NumPy: https://github.com/luispedro/jug/blob/master/jug/backends/file_store.py#L102
E cosa succede quando chiami' compute (gendata()) '? Carica effettivamente DataFrame dalla cache? – Yariv
Se' ' gendata() '' è stato calcolato in un processo diverso, quindi sì. – luispedro
Esiste un modo per eseguire jug con il comando 'python' invece di' jug'? – Light