apache-spark - 如何将参数传递给 spark.sql ("""""")?

标签 apache-spark pyspark apache-spark-sql apache-zeppelin

我想传递一个字符串给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/

相关文章:

python - Pyspark 中的中位数和分位数值

java - 如何将String类型的数据集转换为Row类型的数据集?

python - 将 pyspark groupedData 转换为 pandas DataFrame

python - 从 Pyspark Dataframe 列中提取文件扩展名

apache-spark - 我应该如何在 Ubuntu 12.04 上集成 Jupyter notebook 和 pyspark?

python - 使用 None 值过滤 Pyspark 数据框列

scala - 如何将 spark 数据集转换为 scala seq

java - 使用spark和java在cassandra中保存对象

apache-spark - Spark执行器配置

apache-spark - 如何处理 "WARN TaskSetManager: Stage contains a task of very large size"?