Я смущен, когда вижу ошибку, так как не понимаю, как подзапросы можно было бы считать коррелированными. С чем они соотносятся?
В любом случае, чтобы избавиться от ошибки (которая, как мне кажется, происходит во время анализа, то есть до выполнения запроса), нужно использовать любую стандартную статистическую функцию, которая гарантирует Spark Analyzer, что запросы возвращают только одну строку с одним столбец или строка вообще отсутствует (в результате получится null
).
Вы можете использовать first
или max
стандартные агрегатные функции следующим образом:
SELECT first(CODE) FROM BOC_MED_METADATA WHERE CODE_TYPE = 'ndc'
Я не думаю, что Spark должен сообщать об исключении, поскольку я не могу найти никаких коррелированных запросов, и использование SQL IN
должно действительно принимать любое количество значений из подзапроса. Я в замешательстве.