我正在尝试在Databricks中的Python-Notebook中使用Python logging模块将自己的日志文件写入Azure Datalake Gen 2。但是,我无法让它工作。虽然文件夹已创建,但没有包含日志内容的文件被创建。即使文件存在,也没有任何东西被写入其中。本地Python脚本可以正常工作,但我无法在Databricks中让它正常工作。以下是我的代码:
# mount
if not any(mount.mountPoint == '/mnt/log' for mount in dbutils.fs.mounts()):
dbutils.fs.mount(
source = "abfss://log@datalake.dfs.core.windows.net/",
mount_point = "/mnt/log",
extra_configs = configs)
# vars
folder_log = '/mnt/log/test/2019'
file_log = '201904.log'
# add folder if not existent
dbutils.fs.mkdirs(folder_log)
# setup logging
import logging
logging.basicConfig(
filename=folder_log+'/'+file_log,
format='%(asctime)s | %(name)s | %(levelname)s | %(message)s',
datefmt='%Y-%m-%d %H:%M:%S UTC (%z)',
level=logging.NOTSET
)
# test
logging.info('Hello World.')
安装看起来没问题。
使用dbutils添加和写入文件也很好:
dbutils.fs.put(folder_log+'/'+file_log, 'Hello World.')
像这样写入文件也可以:
f = open('/dbfs/mnt/log/test/2019/201904.log', 'w+')
f.write("This is line %d\r\n")
f.close()
也尝试将 "dbfs" 添加到路径中
filename='/dbfs'+folder_log+'/'+file_log,
有什么想法吗?