0

我有一个 Dash 应用程序,它接收多个 CSV 文件,并创建一个用于分析和可视化的组合数据框。通常,对于大小为 600-650 MB 的数据集,此计算大约需要 30-35 秒。我使用 Flask Filesystem 缓存来存储这个数据帧一次,并且每次我请求数据时,它都来自 Cache。

我在这里使用了 Dash 示例中的代码

我在这里有两个问题:

  1. 似乎由于缓存位于文件系统中,因此第一次尝试获取 Dataframe 需要两倍的时间(近 70 秒),然后它很快就来自后续请求。我可以使用任何其他缓存类型来避免这种开销吗?

  2. 我尝试通过设置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

有人可以帮我弄这个吗?谢谢。

4

0 回答 0