Я только что опубликовал проблему, надеюсь, я не перешагнул протокол!
https://issues.apache.org/jira/browse/SPARK-26777
Интересно, сталкивался ли кто-нибудь с проблемой SQL Spark 2.4.0 (из Pyspark 3.6)
spark.sql("select partition_year_utc,partition_month_utc,partition_day_utc \
from datalake_reporting.copy_of_leads_notification \
where partition_year_utc = (select max(partition_year_utc) from datalake_reporting.copy_of_leads_notification) \
and partition_month_utc = \
(select max(partition_month_utc) from datalake_reporting.copy_of_leads_notification as m \
where \
m.partition_year_utc = (select max(partition_year_utc) from datalake_reporting.copy_of_leads_notification)) \
and partition_day_utc = (select max(d.partition_day_utc) from datalake_reporting.copy_of_leads_notification as d \
where d.partition_month_utc = \
(select max(m1.partition_month_utc) from datalake_reporting.copy_of_leads_notification as m1 \
where m1.partition_year_utc = \
(select max(y.partition_year_utc) from datalake_reporting.copy_of_leads_notification as y) \
) \
) \
order by 1 desc, 2 desc, 3 desc limit 1 ").show(1,False)
Выше PySpark / SQL-код работает вPresto / Athena и раньше он также работал в Spark 2.3.2.
Теперь в последней версии Spark 2.4.0 AWS EMR 5.20.0 происходит сбой с ошибка (синтаксис запроса):
py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o1326.showString.: java.lang.UnsupportedOperationException: Невозможно оценить выражение: scalar-subquery # 4495 []
Я отправил вопрос в Spark, но мне также интересно, знает ли кто-нибудь об этом уже?
Я мог бы переписать этот код SQL, чтобы разбить его на несколько (3-4) простых операторов SQL, но решил опубликовать его здесь для мнений, поскольку это довольно тривиальный код.Спасибо!