首页 > 解决方案 > 参数文件中 Spark SQL 的 IN 子句中的多个参数

问题描述

我正在尝试运行 spark 查询,其中我根据参数文件中的值从源表创建策划表。

properties_file.properties包含以下键值:

substatus,allow,deny

SparkQuery

//Code to load property file in parseConf

spark.sql(s"""insert into curated.table from source.table where 
substatus='${parseConf.substatus}'""")

以上适用于substatus. 但是,如果我需要使用以下参数substatus${parseConf.substatus}的多个值,有人可以帮助我该怎么做。

spark.sql(s"""insert into curated.table from source.table where substatus in '${parseConf.substatus}'""")

标签: apache-sparkapache-spark-sql

解决方案


为了解决我的问题,我将我的属性文件更新为:
substatus,'allow'-'deny'
然后在 scala 代码中,我实现了以下逻辑:
val subStatus=(parseConf.substatus).replace('-',',')
spark.sql(s"""insert into curated.table from source.table where substatus in ('${subStatus}')""")
上述策略有助于将字符串中的值分解为 IN 子句的多个参数。


推荐阅读