取消
顯示的結果
而不是尋找
你的意思是:

Python日誌:升級後的操作不支持DBRT 6.1

zachary_jones
新的因素

我組織一個S3 bucket安裝在磚上的文件係統

/ dbfs / mnt
。當使用磚5.5運行時,下麵,以下日誌代碼工作正常:

log_file = ' / dbfs / mnt /道路/ /我的/桶/測試。日誌記錄器= logging.getLogger (test-logger) logger.setLevel (logging.INFO)處理程序= logging.FileHandler (str (log_file)) handler.setLevel (logging.INFO) logger.addHandler(處理器)

logger.info(測試)

後升級到磚6.1運行時,上麵的代碼生成一個日誌錯誤”OSError: [Errno 95]操作不支持”。這是印刷的堆棧跟蹤:

回溯(最近調用最後):文件“/磚/ python / lib / python3.7 /日誌/ __init__。py”, 1038行,在發出self.flush()文件”/磚/ python / lib / python3.7 /日誌/ __init__。py”, 1018行,在衝洗self.stream.flush () OSError: [Errno 95]操作不支持

奇怪的是,常規的Python文件I / O工作正常使用相同的文件。(例如我可以

open ()
write ()
filepath成功)。知道發生了什麼嗎?

1接受解決方案

接受的解決方案

腐蝕
新的貢獻者三世

根據文檔中的局限性,從6.0運行時開始,隨機寫入dbfs不再支持。

在原帖子查看解決方案

3回複3

SanghyunLee
新的貢獻者二世

>奇怪的是,常規的Python文件I / O工作正常使用相同的文件。(即我可以打開()和寫()filepath成功。)知道發生了什麼嗎?

如果你想做一個進一步的操作打開文件之後,它將把同樣的錯誤。我也遇到同樣的問題。

腐蝕
新的貢獻者三世

根據文檔中的局限性,從6.0運行時開始,隨機寫入dbfs不再支持。

lycenok
新的貢獻者二世

可能值得嚐試重寫發出…https://docs.python.org/3/library/logging.html處理程序

這工作對我來說:

類OurFileHandler (logging.FileHandler):

def排放(自我、記錄):#抄襲https://github.com/python/cpython/blob/master/Lib/logging/__init__.p如果自我。流:沒有自我。流= self._open()嚐試:味精= self.format(記錄)流=自我。流問題# 35046:合並兩個流。成一個寫道。流。寫(味精+ self.terminator) self.flush()除了RecursionError: #看到發行36272提高除了例外:self.handleError(記錄)

必須定義#記錄器ch = logging.FileHandler (log_file_path) ch = OurFileHandler (log_file_path)格式化程序=日誌記錄。格式化程序(“% (asctime)年代:%(名稱)(% (levelname) s): %(消息)s ') ch.setFormatter (Formatter) logger.addHandler (ch)

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map