如何将单元格的输出数据从azure databricks notebook获取到文件

ppcbkaq5  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(109)

无法将单个单元格的输出获取到Azure数据砖笔记本中的文件
尝试了很多方法,但无法得到结果。
有人可以帮助我在这方面,如果有一种方法或没有办法,请让我知道。
谢谢和问候,Prem

qnakjoqk

qnakjoqk1#

您可以按照以下步骤将单个单元格的输出导出到Azure Databricks中的文件。

  • 您可以使用_(下划线)变量,它表示在Databricks笔记本中最后执行的单元格的输出。将输出分配给变量,如

    创建目录(如果不存在)

您可以使用标准的Python文件处理技术将输出写入文件。


输出到文件:

cl25kdpy

cl25kdpy2#

您可以使用IPython的神奇命令%%capture variable_name将数据块单元格输出存储到变量中。

%%capture capOut
print("something")
print(25)

字符串
上面的代码存储stdout,stderr并输出到capOut对象。调用capOut.stdout得到'something\n25\n'
到目前为止,databricks中的stderr似乎不会捕获python错误/异常,除非显式指定。

%%capture capOut
print("an error", file=sys.stderr)


然后可以使用capOut.stderr访问它,它返回'an error\n'。尽管如此,我还是建议使用logging模块来记录错误,默认情况下它会被捕获到stderr。
然后,您可以将其写入文件,如下所示。

with open("path/to/file.txt", "w+") as f:
    f.write(f"STDOUT:{capOut.stdout}\n")
    f.write(f"STDERR:{capOut.stderr}")

相关问题