如何从计划的笔记本登录kernel-pyspark - * .log?

时间:2017-01-05 19:10:16

标签: apache-spark pyspark ibm-cloud data-science-experience dsx

在我的笔记本中,我设置了一个用于记录的实用程序,以便我可以debug DSX scheduled notebooks

# utility method for logging
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger("CloudantRecommender")

def info(*args):

    # sends output to notebook
    print(args)

    # sends output to kernel log file
    LOGGER.info(args)

像这样使用它:

info("some log output")

如果我检查日志文件,我可以看到我的注销已写入:

! grep 'CloudantRecommender' $HOME/logs/notebook/*pyspark* 

kernel-pyspark-20170105_164844.log:17/01/05 10:49:08 INFO CloudantRecommender: [Starting load from Cloudant: , 2017-01-05 10:49:08]
kernel-pyspark-20170105_164844.log:17/01/05 10:53:21 INFO CloudantRecommender: [Finished load from Cloudant: , 2017-01-05 10:53:21]

但是,当笔记本电脑作为预定作业运行时,日志输出似乎没有进入kernel-pyspark - * .log文件。

如何在DSX预定笔记本中编写日志输出以进行调试?

1 个答案:

答案 0 :(得分:1)

日志代码实际上可以正常工作。问题是,时间表指向了没有任何日志记录的笔记本的旧版本!