将python变量传递到SQL查询中

将python变量传递到SQL查询中,python,sql,databricks,azure-databricks,Python,Sql,Databricks,Azure Databricks,我正在使用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

我正在使用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}'
"""
。。。在Python3中。请记住,查询字符串需要在插入的变量周围加上单引号。但是,对于某些变量,您可能需要将变量直接传递给spark模块,以便它能够对其进行解释。我经常使用pyodbc,并会这样做:

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

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

query = f"""SELECT * FROM results_table
WHERE name = '{series_name}'
"""
。。。在Python3中。请记住,查询字符串需要在插入的变量周围加上单引号。但是,对于某些变量,您可能需要将变量直接传递给spark模块,以便它能够对其进行解释。我经常使用pyodbc,并会这样做:

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

我们也可以尝试以下方法

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

我们也可以尝试以下方法

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

以下也将起作用

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

以下也将起作用

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

为什么不使用
f-string
格式化查询?看看这个例子:这是python代码吗?是否有任何原因“=”缺少第一行?为什么不使用
f-string
格式化查询?请看下面的示例:这是python代码吗?是否有任何原因“=”缺少第一行?谢谢!我尝试使用f-string,但没有使用单引号(')。正常情况下,它在没有手帕的情况下工作!我尝试使用f-string,但没有使用单引号(')。正常情况下,没有它也能工作