我想传递一个字符串给spark.sql
这是我的问题
mydf = spark.sql("SELECT * FROM MYTABLE WHERE TIMESTAMP BETWEEN '2020-04-01' AND '2020-04-08')
我想为日期传递一个字符串。
我试过这段代码
val = '2020-04-08'
s"spark.sql("SELECT * FROM MYTABLE WHERE TIMESTAMP BETWEEN $val AND '2020-04-08'
最佳答案
尝试使用 Python 字符串格式化 {}
和 .format(val)
as $val
在 scala 中。
val = '2020-04-08'
spark.sql("SELECT * FROM MYTABLE WHERE TIMESTAMP BETWEEN {} AND '2020-04-08'".format(val)).show()
示例:
在 Pyspark 中:
spark.sql("select * from tmp").show()
#+----+---+
#|name| id|
#+----+---+
#| a| 1|
#| b| 2|
#+----+---+
id='1'
spark.sql("select * from tmp where id={}".format(id)).show()
#+----+---+
#|name| id|
#+----+---+
#| a| 1|
#+----+---+
在 Scala 中:
使用字符串插值
替换变量的值
val id=1
spark.sql(s"select * from tmp where id=$id").show()
//+----+---+
//|name| id|
//+----+---+
//| a| 1|
//+----+---+
关于apache-spark - 如何将参数传递给 spark.sql ("""""")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61827747/