У меня есть несколько искровых проектов в моей IDE. По умолчанию spark выбирает файл log4j.properties в папке spark / conf.
Поскольку у меня есть несколько проектов spark, я хочу иметь несколько файлов log4j.properties (для одного проекта). Возможно, как часть кода проекта (папка ресурсов)
Есть ли способ, которым мы можем забрать указанный log4j.properries вместо стандартного log4j.properties.
Примечание:
Я попробовал это
--driver-java-options "-Dlog4j.configuration=file:///usr/local/Cellar/apache-spark/2.4.1/libexec/conf/driver_log4j.properties"
и все работало без проблем, однако я ищу что-то вроде ниже.
однако я хочу загрузить файл log4j.properties, который находится в папке ресурсов при создании искрового регистратора.
class SparkLogger():
def __init__(self, app_name, sparksession = None):
self._spark = sparksession
self.log4jLogger = None
if self._spark is not None:
sparkContext =self._spark.sparkContext
self.log4jLogger = sparkContext._jvm.org.apache.log4j
self.log4jLogger = self.log4jLogger.LogManager.getLogger(app_name)
def info(self, info):
if self.log4jLogger:
self.log4jLogger.info(str(info))
def error(self, info):
if self.log4jLogger:
self.log4jLogger.error(str(info))
def warn(self, info):
if self.log4jLogger:
self.log4jLogger.warn(str(info))
def debug(self, info):
if self.log4jLogger:
self.log4jLogger.debug(str(info))