如果在PySpark中将任何类型的登录添加到UDF函数中,它将不会出现在任何地方。这是一种实现这一目标的方法吗?
到目前为止,我尝试了标准的python日志记录、py4j和打印。
我们在AWS EMR集群上运行带有YARN集群管理器的PySpark 2.3.2。
例如。下面是我想使用的一个函数:
def parse_data(attr):
try:
# execute something
except Exception as e:
logger.error(e)
return None我将其转换为UDF:
import pyspark.sql.functions as F
parse_data_udf = F.udf(parse_data, StringType())我将在数据帧上使用它:
from pyspark.sql import types as pst
dataframe = dataframe.withColumn("new_column", parse_data_udf("column").cast(pst.StringType())函数中的日志不会出现在任何地方。
发布于 2021-10-22 20:28:55
使用yarn时,可以使用以下YARN CLI命令查看容器日志。
这就是stdout/stderr (以及您在udf中登录的内容)可能所在的位置。
yarn logs -applicationId <Application ID> -containerId <Container ID>https://stackoverflow.com/questions/58396970
复制相似问题