需要有关 apache 方解石的建议。我们在 Teradata 上运行了一些 SQL 查询。现在我们想在 Hadoop/Spark 上运行这些 sql 查询(原样),也许使用 Apache calcite。
我们在 Spark SQL (2.6.3) 和 Apache calcite 中尝试了这些 SQL 查询(原样) - 但很少有查询不运行。问题是如果我们定义一个派生变量 (AS) 并尝试在同一级别的同一查询中使用它,它在 SparkSQL 和 calcite 中不起作用,但在 Teradata 中起作用。示例查询:
select EMPNO, sum(deptno) as sum_dept,
case when sum_dept > 10 then 1 else 0 end as tmp
from emps
group by EMPNO; => WORKS in Teradata
但是这在 SparkSQL 和 Calcite 中不起作用。引发以下错误:
执行 SQL 时出错“选择 EMPNO, sum(deptno) as sum_dept, case when sum_dept > 10 then 1 else 0 end as tmp from emps group by EMPNO”:从第 1 行第 50 列到第 1 行第 57 列:列'SUM_DEPT ' 在任何表中都找不到 (state=,code=0)
有人(SparkSQL/Calcite 专家)知道是否有办法让它在 sparkSQL 或方解石中工作?