如何将值从一个数据框传递到另一数据框?

时间:2020-03-03 21:56:13

标签: sql dataframe apache-spark apache-spark-sql

> val a=spark.sql(select max(CID) as C_ID from AAA 
> val b=spark.sql(select * from  NST where C_ID= ' ')
> 

我必须将C_ID值传递给以下数据帧中的where条件作为参数。 有什么建议我该怎么做?我不应该使用子查询的概念,因为数据是数以百万计的 联接中有多个表,在这里我提到了示例查询。

1 个答案:

答案 0 :(得分:1)

使用 variable 将sql结果存储到mkString中,然后在 where 子句中使用变量。

Example:

val df=Seq((1,"a"),(2,"b")).toDF("CID","n")
df.createOrReplaceTempView("AAA")

val df1=Seq((1,"a"),(2,"b")).toDF("C_ID","j")
df1.createOrReplaceTempView("NST")

val a=spark.sql("select max(CID) from AAA").collect()(0).mkString
spark.sql(s"select * from NST where C_ID=${a}").show()

#+----+---+
#|C_ID|  j|
#+----+---+
#|   2|  b|
#+----+---+