小编Dom*_*aun的帖子

使用数据块中的 python 日志记录模块将日志写入 azure 数据湖不起作用

我正在尝试在 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)

安装似乎没问题。

使用 …

python logging azure azure-data-lake azure-databricks

10
推荐指数
2
解决办法
4860
查看次数

在数据框中复制行 x 次 - 提高性能

我正在寻找复制数据帧行的最有效的解决方案。每行应复制 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)

python dataframe pandas

5
推荐指数
1
解决办法
498
查看次数