无法将单个单元格的输出获取到Azure数据砖笔记本中的文件尝试了很多方法,但无法得到结果。有人可以帮助我在这方面,如果有一种方法或没有办法,请让我知道。谢谢和问候,Prem
qnakjoqk1#
您可以按照以下步骤将单个单元格的输出导出到Azure Databricks中的文件。
您可以使用标准的Python文件处理技术将输出写入文件。
输出到文件:
cl25kdpy2#
您可以使用IPython的神奇命令%%capture variable_name将数据块单元格输出存储到变量中。
%%capture variable_name
%%capture capOut print("something") print(25)
字符串上面的代码存储stdout,stderr并输出到capOut对象。调用capOut.stdout得到'something\n25\n'。到目前为止,databricks中的stderr似乎不会捕获python错误/异常,除非显式指定。
capOut
capOut.stdout
'something\n25\n'
%%capture capOut print("an error", file=sys.stderr)
型然后可以使用capOut.stderr访问它,它返回'an error\n'。尽管如此,我还是建议使用logging模块来记录错误,默认情况下它会被捕获到stderr。然后,您可以将其写入文件,如下所示。
capOut.stderr
'an error\n'
logging
with open("path/to/file.txt", "w+") as f: f.write(f"STDOUT:{capOut.stdout}\n") f.write(f"STDERR:{capOut.stderr}")
型
2条答案
按热度按时间qnakjoqk1#
您可以按照以下步骤将单个单元格的输出导出到Azure Databricks中的文件。
创建目录(如果不存在)
您可以使用标准的Python文件处理技术将输出写入文件。
输出到文件:
cl25kdpy2#
您可以使用IPython的神奇命令
%%capture variable_name
将数据块单元格输出存储到变量中。字符串
上面的代码存储stdout,stderr并输出到
capOut
对象。调用capOut.stdout
得到'something\n25\n'
。到目前为止,databricks中的stderr似乎不会捕获python错误/异常,除非显式指定。
型
然后可以使用
capOut.stderr
访问它,它返回'an error\n'
。尽管如此,我还是建议使用logging
模块来记录错误,默认情况下它会被捕获到stderr。然后,您可以将其写入文件,如下所示。
型