Apache Spark 如何在下面的SQL查询中使用%格式而不是f'字符串格式?

68de4m5k  于 2023-03-13  发布在  Apache
关注(0)|答案(1)|浏览(112)

如何在下面的查询中使用%格式。我有模式和表名作为参数。我想使用%格式的原因是因为我无法在日志文件中记录查询。

import logging
logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

query_random = f"""(select * from {SCHEMA}.{TABLE_NAME}
       where xyz =4
       and abc = 1
       fetch first 10000 rows only)as some_name"""

logging.info("Sql query: " + str(query_random))
#logging.info(f"Sql query : {query_random}")

df = spark.read.format("jd")\
                      .option("url", jd_url)\
                      .option("driver",jd_driver)\
                      .option("dbtable" ,query_random)\
                      .option("user", user)\
                      .option("password", password).load()

print(df)
3pmvbmvn

3pmvbmvn1#

我认为您正在日志记录器中查找字符串替换

SCHEMA = 'TEST'
TABLE_NAME = 'testa'
query_random = f"""(select * from {SCHEMA}.{TABLE_NAME}
       where xyz =4
       and abc = 1
       fetch first 10000 rows only)as some_name"""
logging.info(query_random)
logging.warning('%s run %s','me',query_random)

有关日志记录的详细信息,请参阅manual

相关问题