繁体   English   中英

将 python 变量传递给 SQL 查询

[英]Pass a python variable into an SQL query

我正在研究 Databricks,我正在尝试将 python 变量传递给 SQL 查询:

series_name "LogTest"

query = """SELECT * FROM results_table
  WHERE name = $series_name
  """
spark.sql(query).toPandas()

我尝试使用$但它不起作用。

我该怎么做呢?

问候

在这种情况下,您的变量和查询只是字符串。 你可以做:

query = f"""SELECT * FROM results_table
WHERE name = '{series_name}'
"""

... 在 python 3. 请记住,您的查询字符串需要在插入的变量周围加上单引号。 但是,对于某些变量,您可能需要将变量直接传递给 spark 模块,以便它可以解释它。 我经常使用 pyodbc 并且会这样做:

query = f"""SELECT * FROM results_table
WHERE name = ?"""
cursor.execute(query, series_name)

以下也将起作用,

series_name = "LogTest"
spark.sql("SELECT * FROM results_table WHERE name = " + series_name).toPandas()

我们也可以尝试以下方法。

series_name = "LogTest"
query = "SELECT * FROM results_table WHERE name = {}".format(series_name)
spark.sql(query).toPandas() #

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM