Вот несколько вариантов подготовки pyspark-sql через параметр привязки.
Параметр # 1 - Использование String Interpolation / f-Strings (Python 3.6+)
db_name = 'your_db_name'
table_name = 'your_table_name'
filter_value = 'some_value'
query = f'''SELECT column1, column2
FROM {db_name}.{table_name}
WHERE column1 = {filter_value}'''
Опция # 2 - Использование форматирования строки (формат str.format)
query = '''SELECT column1, column2
FROM {}.{}
WHERE column1 = {}'''
db_name = 'your_db_name'
table_name = 'your_table_name'
filter_value = 'some_value'
query.format(db_name, table_name, filter_value)
Опция #3 - Использование строки шаблона
query = '''SELECT column1, column2
FROM ${db_name}.${table_name}
WHERE column1 = ${filter_value}'''
db_name = 'your_db_name'
table_name = 'your_table_name'
filter_value = 'some_value'
from string import Template
t = Template(query)
t.substitute(db_name=db_name, table_name=table_name, filter_value=filter_value)
Интерполяция строк / f-строк ( Параметр # 1 ) -рекомендуется, если у вас Python 3.6+, иначе используйте форматирование строки str.format ( Option # 2 )
Шаблонная строка более полезна для обработкипредоставленная пользователем строка ( опция # 3 )