Я пытаюсь сделать простое объединение с использованием Beam SQL, но я получаю исключение при компиляции:
Exception in thread "main" java.lang.ClassCastException: org.apache.beam.repackaged.beam_sdks_java_extensions_sql.org.apache.calcite.rex.RexCall cannot be cast to org.apache.beam.repackaged.beam_sdks_java_extensions_sql.org.apache.calcite.rex.RexInputRef
Объединение выглядит примерно так:
select T1.x from table1 T1 join table2 T2
on
(case when T1.a = 'ABC' then 'ABC' else T1.b end = T2.c)
Этоусловие отлично работает при выполнении в BigQuery (пробовал как проверка работоспособности).Не уверен, почему это происходит в Beam SQL.Я даже пытался использовать Beam SQL UDF, но это тоже не помогло.Я предполагаю, что это из-за Apache Calcite и его формата, но я не знаю, как с этим справиться.
Может кто-нибудь, пожалуйста, помогите с этим.