jupyter notebook 执行 shell 脚本并忽略输出日志

jupyter notebook execute shell script and ignore the output logs

如何在 jupyter 中执行 shell 脚本并忽略其记录到 standardout 和 standarderr 的输出?

!sh my_shell_file.sh > /dev/null

不起作用,并且仍在记录大量日志。

背景

我想关闭 spark 的日志:

甚至没有:

spark.sparkContext.setLogLevel("FATAL")

spark.sparkContext.setLogLevel("ERROR")

提供 a:

时有效
spark-shell -i my_scala.scala

内容为

spark.sparkContext.setLogLevel("ERROR")
spark.sparkContext.setLogLevel("FATAL")

// do some stuff
// generating plenty of logs

编辑

手动设置:

import org.apache.log4j.Logger
import org.apache.log4j.Level
Logger.getRootLogger.setLevel(Level.ERROR)
Logger.getRootLogger.setLevel(Level.FATAL)

Logger.getLogger("org").setLevel(Level.WARN)

也无法使日志静音。

20/11/05 15:18:16 WARN net.ScriptBasedMapping: Exception running /etc/hadoop/conf/topology_script.py 10.15.250.71 
ExitCodeException exitCode=1:   File "/etc/hadoop/conf/topology_script.py", line 63
    print rack
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(rack)?

    at org.apache.hadoop.util.Shell.runCommand(Shell.java:1008)
    at org.apache.hadoop.util.Shell.run(Shell.java:901)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1213)

仍然被记录了数千次。

一个简单的:&>/dev/null How do I suppress output from this Shell command 就解决了,也忽略了spark的standarderror输出。