在Hive查询中使用Scala集合

时间:2019-06-24 19:52:28

标签: apache-spark hive apache-spark-sql

我有一个scala数组集合。我需要从配置单元查询访问此集合中的值。可以使用HiveContext来实现。

1 个答案:

答案 0 :(得分:0)

如果要在配置单元查询中使用,请将 collection 定义为 string

Example:

val df=Seq((1,"a"),(2,"b"),(3,"c")).toDF("id","name")
spark.sql("select * from tmp").show()
df.createOrReplaceTempView("tmp")
spark.sql("select * from tmp").show()
val st=""""a","b""""
spark.sql(s"select * from tmp where name in ($st)").show()
//Output:
//+---+----+
//| id|name|
//+---+----+
//|  1|   a|
//|  2|   b|
//+---+----+

定义集合(如果您使用的是 dataframe api:

Example:

val st_list=List("a","b")
df.filter('name.isin(st_list:_*)).show()
//output:
//+---+----+
//| id|name|
//+---+----+
//|  1|   a|
//|  2|   b|
//+---+----+