我正在尝试在 Databricks 中的 Python 笔记本中将自己的日志文件写入 Azure Datalake Gen 2。我试图通过使用 Python 日志记录模块来实现这一点。
不幸的是我不能让它工作。不会引发错误,会创建文件夹,但不会创建包含日志内容的文件。即使文件存在,也不会写入任何内容。
本地 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.')
Run Code Online (Sandbox Code Playgroud)
安装似乎没问题。
使用 …
我正在寻找复制数据帧行的最有效的解决方案。每行应复制 x 次,其中 x 对于每行都是唯一的。
假设这是我给定的数据框:
| id | count |
|----|-------|
| a | 1 |
| b | 2 |
| c | 5 |
Run Code Online (Sandbox Code Playgroud)
结果数据框应如下所示,其中每行都按照“count”列中给出的数量进行复制:
| id | count |
|----|-------|
| a | 1 |
| b | 2 |
| b | 2 |
| c | 5 |
| c | 5 |
| c | 5 |
| c | 5 |
| c | 5 |
Run Code Online (Sandbox Code Playgroud)
一个非常基本的方法是循环数据帧并附加行 x 次,如下所示:
data = {'id': …Run Code Online (Sandbox Code Playgroud)