亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試緩存 s3 文件

嘗試緩存 s3 文件

侃侃爾雅 2023-02-22 16:48:06
我有兩條運行的管道。第一個管道從 s3 讀取文件并進行一些處理并更新文件。第二個管道運行多個作業,對于每個作業,我從 s3 下載文件并生成一些輸出。我覺得我通過多次下載在我的第二個管道上浪費了很多時間,因為當我將它們用于多個作業時我目前不緩存這些文件。因此,鑒于此,我試圖在本地緩存 s3 文件。我做了一些研究,發現可以使用s3fs或fsspec 。到目前為止,我可以使用 s3fs 從 s3 下載并打開文件,但我不確定如何在本地緩存它。import s3fsimport pandas as pdFS = s3fs.S3FileSystem()file = FS.open('s3://my-datasets/something/foo.csv')# of = fsspec.open("filecache::s3://bucket/key", s3={'anon': True}, filecache={'cache_storage'='/tmp/files'})df = pd.read_csv(file, sep='|', header=None)print(df)正如您在上面的代碼中看到的,我正在從 s3 打開一個文件,然后將其讀取到數據幀中?,F在我想知道是否有參數或我可以傳遞的東西以便緩存該文件。另一種方法當然是我可以檢查文件是否存在于某個路徑中,如果存在則使用它,如果不存在則下載它但我覺得必須有更好的方法來進行緩存。我愿意接受任何和所有的建議。
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

Amazon S3 是一種對象存儲服務,可以通過經過身份驗證的 API 請求進行訪問。

諸如s3fs將 Amazon S3 呈現為文件系統之類的工具,但它們需要將此類用法轉換為正常的 S3 API 調用。當在 S3 或本地 s3fs 虛擬磁盤中進行大量更新時,更新另一端可能需要一些時間,并且在高使用率情況下它們可能會變得不同步。

s3fs 保留文件緩存的事實意味著文件可能會更快地變得不同步,這取決于它返回并檢查 S3 中的內容是否已更改的頻率。

它基本上是在您的應用程序和 S3 之間增加了另一層復雜性。如果你能直接去,它總是會更可靠。但是,這意味著您可能需要自己實現一些有用的功能。

如果你打算在生產環境中使用它,我建議創建一個測試平臺來模擬適當的使用級別,以確認所有系統都按預期工作。


查看完整回答
反對 回復 2023-02-22
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

您可以使用 s3fs 和 fsspec 在本地緩存 S3 文件: https://filesystem-spec.readthedocs.io/en/latest/features.html#caching-files-locally


文檔中的兩個示例對我來說都很好。似乎您實際上有第二個選項,因為您的示例中注釋掉了代碼。那對你不起作用嗎?


無論如何,你的第一個例子是


import pandas as pd

import fsspec


fs = fsspec.filesystem("filecache", target_protocol='s3', cache_storage='/tmp/files/', check_files=True)

with fs.open('s3://my-datasets/something/foo.csv') as file:

    df = pd.read_csv(file, sep='|', header=None)


查看完整回答
反對 回復 2023-02-22
  • 2 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號