有什么方法可以查询Spark SQL中不存在的列? 我通过spark-streaming获得了一个JSON列表,然后,我想将此json转换为一个临时表。因此我可以使用SQL查询这些列表。 我在下面找到一个tmp表:
SparkSession ss = SparkSession.builder().config(sparkConf).getOrCreate();
Dataset<Row> rdd = ss.read().json(rdd);
rdd.registerTempTable("tmp_table");
,此表的结构为'username,passwr,uid,kid' 但是当我使用SQL查询时:
ss.sql("select * from tmp_table where xxx=1");
“ xxx”是不在此表的列中的列。
我该怎么做?当列不存在但没有这样的错误时,我不想得到任何结果:
线程“ main”中的异常org.apache.spark.sql.AnalysisException:无法 解析给定输入列的“ xxx”
因为直到我真正使用此数据之前我都不知道哪一列会存在,所以无法为其指定修复列,而以前只能获得SQL条件。
此外,我想配置此SQL条件,但不要在我的代码中编写它。我只想在列不存在时得到“无结果”的结果,或者在列不存在时得到“无结果或此列为null等等的结果”。
谢谢您的解决方案。