开发者社区 问答 正文

PyODPS DataFrame的计算原理是什么?

PyODPS DataFrame的计算原理是什么?

展开
收起
芯在这 2021-12-13 23:03:51 761 分享 版权
1 条回答
写回答
取消 提交回答
  • 在某种意义上,PyODPS DataFrame可以认为是DSL(领域特定语言)。在到立即执行的操作(如execute)前,得到的都是一个AST(抽象语法树)。

    在交互式环境下,为了方便,我们在repr一个对象时,里面会调用立即执行的方法。因此,我们先把这个选项关掉,来看看执行后会是什么。

    现在我们把verbose打开,执行的中间过程会被打印出来,我们可以看到在ODPS上,目前会把这个AST给compile成ODPS SQL来执行。

    而对于本地数据,我们在compile阶段会把AST转化成一个执行DAG(有向无环图),在执行阶段,会按照DAG的拓扑顺序来执行,得到最终结果。

    2021-12-13 23:04:16
    赞同 展开评论