在本地模式下运行时,这会将日志打印到控制台:
object Util extends Logging {
val df: DataFrame = ???
df.select("id", "name")
.rdd.foreach(r => log.warn("here"))
}
但是在群集模式下运行时却没有。我相信它是因为log命令在工作节点而不是主节点上执行。
使用println(...)
如何在控制台中显示日志结果?
答案 0 :(得分:1)
如果您在群集上运行作业,首先应collect
rdd
个rdd.collect().foreach(r ⇒ log.warn("here"))
数据。
rdd
但收集所有take
可能不是一个好主意,因此您可以使用def flat
Position.select(:id, :name).map{|p| {id: p.id, name: p.attributes}} +
PositionSynonyms.select(:position_id, :name).map{|s| {id: s.position_id, name: s.name}}
end
函数来获取少量要打印的rdd元素。