Я проверил его в обоих Спарк оболочки 2.0.x оболочки и бережливости (БИЛАЙН) а. Я смог связать переменную в запросе Spark SQL с командой set
.
запросы без переменного связывания:
select count(1) from mytable;
запрос с переменным связыванием (параметризованным):
1. Свеча SQL-оболочки
set key_tbl=mytable; -- setting mytable to key_tbl to use as ${key_tbl}
select count(1) from ${key_tbl};
2. Свеча оболочки
spark.sql("set key_tbl=mytable")
spark.sql("select count(1) from ${key_tbl}").collect()
Оба ж/w.o связывают PARAMS запрос возвращает идентичный результат.
Примечание: Не давать какие-либо котировки на значение ключа, как это имя таблицы здесь.
Дайте мне знать, если возникнут какие-либо вопросы.
Благодаря его работы. – user3769729
Я не уверен, почему это было проголосовано, это сработало для меня в искры 1.5.2. Спасибо @Ashrith –
Это не переменная связывания. Вы каждый раз создаете строку. Время Evey Spark проанализирует запрос, создаст план выполнения и т. Д. Назначение переменных привязки (например, в системах РСУБД) - сократить время на выполнение плана выполнения. Он должен иметь специальный API для привязки переменных. Spark не имеет этой функциональности (на сегодняшний день выпуска Spark 1.6). – Tagar