捕获 Oozie 中 Spark 操作节点的控制台输出作为整个 Oozie 工作流的变量

Capture Console output of Spark Action Node in Oozie as variable across the Oozie Workflow

有没有办法在 Oozie 中捕获 spark 作业的控制台输出?我想在spark作业后的下一个action节点中使用具体的打印值。

我在想我也许可以使用 ${wf:actionData("action-id")["Variable"]},但 oozie 似乎没有能力从 spark 动作节点捕获输出,这与 Shell 动作不同,你可以只使用 echo "var=12345" 然后调用 oozie 中的 wf:actionData 以用作整个工作流程中的 Oozie 变量。

我想实现这一点,因为我想打印可能处理的记录数并将其存储为 oozie 变量,并将其用于工作流中的下一个操作节点,而无需执行任何需要您存储该数据的功能在工作流程之外,例如将它们保存在 table 中或通过在 Spark Scala 程序中实现它们将它们存储为系统变量。

任何帮助将不胜感激,因为我仍然是新手 spark 程序员。非常感谢。

由于Spark action 不支持capture-output,您必须将数据写入到HDFS 的文件中。 post 解释了如何从 Spark 做到这一点。