Есть вариант расширить Spark SQL. Действия в общем такие:
1. Расширить парсер, спарк использует Antlr, в исходниках можно найти файл грамматик и классы, которые отвечают за его использование. В 2.3.0 файлов с классами было два. Грамматики придется освоить, или, в крайнем случае, прикрутить парсер-комбинаторы scala, такое видел в Carbon Data
2. Добавить правила в оптимизатор. Если раскурить, как выполняются существующие стейтменты, смотря в код и на сайт Яцека Лазковского
jaceklaskowski.gitbooks.io, то можно добавить те, которых не хватает, в логический план, проанализированный логический план, оптимизированный план, физический план. Некоторые этапы не надо будет править, потому что выполнение пойдет через существующие классы/объекты
3. Зарегистрировать созданные правила и парсер как расширения через хук при создании спарксессии, есть пара статей, где это хорошо описано, в документации тоже есть. Самый радостный пункт ))
4. Все вышеперечисленное лучше сразу (или до реализации) покрывать тестами, потому что связей очень много и риск получить совсем не то, что хочется, крайне высок
Разработка всего перечисленного потребует много времени и напряжения разработчиков, подумайте, может несколько джунов перепишут SQL, и, если они будут продвинутыми джунами, сразу на Dataset API !