Подумайте об использовании словаря вместо списка, так как он более аккуратный и гибкий.
sql_list = {'alias1':'(select * from table1 where rownum <= 100) alias1',
'alias2': '(select * from table2 where rownum <= 100) alias2'}
for table,sql_statement in sql_list.items():
df = spark.read.format("jdbc").option("driver", jdbc_driver_name)\
.option("url",db_url)\
.option("dbtable", sql_statement)\
.option("user", db_username)\
.option("password", db_password)\
.option("fetchSize",100000).load()
df.write.format("parquet").mode("overwrite").save("s3://s3-location/" + table)
В противном случае вам понадобится выполнить грязное разбиение
df.write.format("parquet").mode("overwrite").save("s3://s3-location/" + sql_statement.split(' ')[-1])