Предполагая, что ваши примеры верны, так как вы на самом деле их пробовали, использование вами формата и соединения не совсем правильно.
Попробуйте:
array_fields = ["cat", "dog"]
ans= spark.sql("""select {} from <table_name> """.format(",".join(array_fields)))
Различия:
- Метод форматирования применяется к строке, которую вы хотите отформатировать.
- Метод join - это вызов функции - его параметр должен быть в круглых скобках, а не в квадратных скобках (ваш второй пример) .
- Метод join не является частью строки (ваш первый пример).
Вы также можете - в первом случае - попробовать использовать print вместо прямого вызова spark.sql
, То есть:
array_fields = ["cat", "dog"]
print("""select {} from <table_name> """.format(",".join(array_fields)))
Таким образом, вы можете увидеть, что в конечном итоге вы передадите Спарк. когда вы будете готовы, просто замените print
на ans = spark.sql
и вы получите go.