将python变量传递到SQL查询中

时间:2020-05-29 11:39:52

标签: python sql databricks azure-databricks

我正在研究Databricks,并且正在尝试将python变量传递到SQL查询中:

series_name "LogTest"

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

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

我该怎么做?

致谢

3 个答案:

答案 0 :(得分:1)

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

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)

答案 1 :(得分:1)

以下操作也可以,

const queryString = window.location.search
const urlParams = new URLSearchParams(queryString)
const username = urlParams.get('username')

答案 2 :(得分:0)

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

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