小编Géz*_*yai的帖子

如何从 Pyspark 中的 UDF 函数发送日志

如果您在 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
Run Code Online (Sandbox Code Playgroud)

我将其转换为 UDF:

import pyspark.sql.functions as F
parse_data_udf = F.udf(parse_data, StringType())
Run Code Online (Sandbox Code Playgroud)

我将在数据帧上使用它:

from pyspark.sql import types as pst
dataframe = dataframe.withColumn("new_column", parse_data_udf("column").cast(pst.StringType())
Run Code Online (Sandbox Code Playgroud)

该函数的日志不会出现在任何地方。

logging user-defined-functions pyspark

5
推荐指数
1
解决办法
1123
查看次数

标签 统计

logging ×1

pyspark ×1

user-defined-functions ×1