首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Pyspark中的UDF函数发送日志

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

Stack Overflow用户
提问于 2019-10-15 22:27:56
回答 1查看 1.4K关注 0票数 5

如果在PySpark中将任何类型的登录添加到UDF函数中,它将不会出现在任何地方。这是一种实现这一目标的方法吗?

到目前为止,我尝试了标准的python日志记录、py4j和打印。

我们在AWS EMR集群上运行带有YARN集群管理器的PySpark 2.3.2。

例如。下面是我想使用的一个函数:

代码语言:javascript
复制
def parse_data(attr):
    try:
        # execute something
    except Exception as e:
        logger.error(e)
        return None

我将其转换为UDF:

代码语言:javascript
复制
import pyspark.sql.functions as F
parse_data_udf = F.udf(parse_data, StringType())

我将在数据帧上使用它:

代码语言:javascript
复制
from pyspark.sql import types as pst
dataframe = dataframe.withColumn("new_column", parse_data_udf("column").cast(pst.StringType())

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

EN

回答 1

Stack Overflow用户

发布于 2021-10-22 20:28:55

使用yarn时,可以使用以下YARN CLI命令查看容器日志。

这就是stdout/stderr (以及您在udf中登录的内容)可能所在的位置。

代码语言:javascript
复制
yarn logs -applicationId <Application ID> -containerId <Container ID>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58396970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档