我有一个 Dash 应用程序,它接收多个 CSV 文件,并创建一个用于分析和可视化的组合数据框。通常,对于大小为 600-650 MB 的数据集,此计算大约需要 30-35 秒。我使用 Flask Filesystem 缓存来存储这个数据帧一次,并且每次我请求数据时,它都来自 Cache。
我在这里使用了 Dash 示例中的代码
我在这里有两个问题:
似乎由于缓存位于文件系统中,因此第一次尝试获取 Dataframe 需要两倍的时间(近 70 秒),然后它很快就来自后续请求。我可以使用任何其他缓存类型来避免这种开销吗?
我尝试通过设置
CACHE_THRESHOLD
(例如,我将其设置为 1)自动清除我的缓存,但它不起作用,我看到目录中添加了文件。
示例代码:
app = dash.Dash(__name__)
cache = Cache(app.server, config={
'CACHE_TYPE' : 'filesystem',
'CACHE_DIR' : 'my-cache-directory',
'CACHE_THRESHOLD': 1
})
app.layout = app_layout
@cache.memoize()
def getDataFrame():
df = createLargeDataFrame()
return df
@app.callback(...) # Callback that uses DataFrame
def useDataFrame():
df = getDataFrame()
# Using Dataframe here
return value
有人可以帮我弄这个吗?谢谢。