【发布时间】:2018-09-13 06:59:11
【问题描述】:
我已在我的 UDF 中放置 log.info 语句,但它在集群上失败了。本地工作正常。这是sn-p:
def relType = udf((colValue: String, relTypeV: String) => {
var relValue = "NA"
val relType = relTypeV.split(",").toList
val relTypeMap = relType.map { col =>
val split = col.split(":")
(split(0), split(1))
}.toMap
// val keySet = relTypeMap
relTypeMap.foreach { x =>
if ((x._1 != null || colValue != null || x._1.trim() != "" || colValue.trim() != "") && colValue.equalsIgnoreCase(x._1)) {
relValue = relTypeMap.getOrElse(x._1, "NA")
log.info("testing.........")
}
}
relValue
})
另外,当我在 UDF 中调用任何函数并使用日志语句时,日志不会打印在集群中,它也可以正常工作。
【问题讨论】:
-
你的日志配置是什么?您是否将其配置为打印?如果是这样,这些语句将打印在远程工作人员上,而不是您当前的机器上。
-
这是我的 log4j.properties
标签: scala apache-spark hadoop user-defined-functions