在PySpark中登录UDF

Pra*_*ada 5 python logging apache-spark pyspark

我正在UDF中调用API,并尝试将输出记录到Logger中,并出现序列化错误。

以下是我的Logger初始化代码:

log4jLogger = spark._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)

在我的UDF中,我正在使用

LOGGER.info("Message")
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误

pickle.PicklingError: Could not serialize object: Py4JError: An error occurred while calling o31.__getnewargs__. Trace:
py4j.Py4JException: Method __getnewargs__([]) does not exist
Run Code Online (Sandbox Code Playgroud)

注册UDF时

distance_udf = udf(distfunc, DoubleType())
Run Code Online (Sandbox Code Playgroud)

您能否更正我在日志记录中应该修改的内容,以及是否要登录到单独的日志文件中,该如何纠正我。

谢谢