Apache Pig - 处理中间别名?

Apache Pig - dispose of intermdiate aliases?

我正在编写一个包含许多操作的冗长 Pig Latin 脚本。有时,操作的唯一目的是获得一个中间关系 X,然后将其转换或丰富为 Y,此时 X 不再有意义。 Pig 是否让 X 在某处具体化(例如在内存或 HDFS 中),我应该担心 "freeing" X 吗?或者这在 Pig 和 Hadoop 之间得到了处理?

奖金问题:如果在运行时处理 MapReduce 上的 Pig、Tez 上的 Pig 和 Spark 上的 Pig 之间的此类中间值时存在任何有趣的差异,那么也很高兴了解这一点。

Pig 使用 Lazy Execution 进行评估。惰性求值的一些特征是

  • 处理只发生在 DUMP/STORE 命令上
  • 允许重新排序以进行优化
  • 内存流水线

Pig 解释器会在您提交查询后计算 DAG。您可以在 grunt shell.

中使用 EXPLAIN 命令查看 pig 使用的执行计划