如果使用spark SQL的数据帧中不存在列,如何忽略这些列



下面是我需要从中导出输出的数据帧。

|A|B|C|E|F|
+---------+
|1|2|3|5|6| 
+---------+
Dataset<Row> set = spark.sql("select A as one, B as two, C as three ,D as four, E as five, F as six from input");

如果列"D"不存在,我需要跳过它,然后转到另一列(即e(。

如果其中任何一列不存在,则应打印null并转到另一列分配。

您可以先尝试检查输入中存在哪些列,例如:

input = spark.read.parquet(...)
cols = input.columns // returns an Array[String]

然后相应地格式化您的查询。

最新更新