我无法调试程序,因为我不知道错误发生在哪一行(这不是R错误消息的一部分)。通常,我将print
语句放入代码中,因此在执行时我知道它已经走了多远,但是R在运行时发生错误时似乎会丢弃所有print()
输出。
这个简单的脚本演示了问题所在:
%r
print(1)
print(no_such_variable)
print(2)
执行该脚本将导致错误,因为未定义no_such_variable
。但是在Spark Databricks中,显示的结果是:
Error in print(no_such_variable) : object 'no_such_variable' not found Error in print(no_such_variable) : object 'no_such_variable' not found
Error in print(no_such_variable) : object 'no_such_variable' not found
In addition: Warning message:
In handleErrors(returnStatus, conn) :
没有与错误相关的行号,并且我的print
语句没有输出。显然,我可以将打印输出发送到文件中(大概在每个语句之后刷新它),但这对于我自1975年开始编写基本代码以来一直在做的事情似乎还有很长的路要走。
人们如何在Spark中编写复杂的R代码,而又看不到代码中发生了什么?我真的希望我缺少一些简单的东西...
答案 0 :(得分:0)
message
打印表示为条件的文本。在Databricks中,即使有其他情况(例如错误),也会打印出来。
message("Print1")
message(no_such_variable)
message("Print2")
#> Print1
#> Error in message(no_such_variable) : object 'no_such_variable' not found