PySparkで適切なログ設定を設定しようとしています。私は、さまざまなログハンドラを設定するYAML設定ファイルを持っています。これらのハンドラは、コンソール、ファイル、SQLite DBで構成され、形式は"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
です。PySparkログのキャプチャ
# SETUP LOGGING
with open(cfile, 'rt') as f:
config = yaml.safe_load(f.read())
logging.config.dictConfig(config)
lg = logging.getLogger("mylog." + self.__name__())
だから私は、呼び出すたびはlg.xxxx('message')
すべてが非常にうまく処理されます。
今私はlog_handler = sc._jvm.org.apache.log4j
を使ってPySparkからlog4jを取得する方法についてかなりの記事を見つけました。しかし、今は私の既存のセットアップにこのハンドラを追加し、PySparkコンソールで発生したすべてのメッセージをキャッチしてファイルとSQLite DBに保存する方法については分かりません。