python写sparksql,如何使用python在Spark SQL中传递变量?

I am writing spark code in python.

How do I pass a variable in a spark.sql query?

q25 = 500

Q1 = spark.sql("SELECT col1 from table where col2>500 limit $q25 , 1")

Currently the above code does not work? How do we pass variables?

I have also tried,

Q1 = spark.sql("SELECT col1 from table where col2>500 limit q25='{}' , 1".format(q25))

解决方案

You need to remove single quote and q25 in string formatting like this:

Q1 = spark.sql("SELECT col1 from table where col2>500 limit {}, 1".format(q25))

Update:

Based on your new queries:

spark.sql("SELECT col1 from table where col2>500 order by col1 desc limit {}, 1".format(q25))

Note that the SparkSQL does not support OFFSET, so the query cannot work.

If you need add multiple variables you can try this way:

q25 = 500

var2 = 50

Q1 = spark.sql("SELECT col1 from table where col2>{0} limit {1}".format(var2,q25))