gpt4 book ai didi

sql - 仅选择存在的字段(SQL 或 Scala)

转载 作者:行者123 更新时间:2023-12-02 20:03:41 24 4
gpt4 key购买 nike

输入数据框可能并不总是包含所有列。在 SQL 或 SCALA 中,我想创建一个 select 语句,即使数据帧没有列,它也不会出错,并且只会输出确实存在的列。

例如,这个语句就可以工作。

Select store, prod, distance from table

+-----+------+--------+
|store|prod |distance|
+-----+------+--------+
|51 |42 |2 |
|51 |42 |5 |
|89 |44 |9 |

如果数据框如下所示,我希望相同的语句能够工作,忽略不存在的内容,只输出现有的列(在本例中为“store”和“prod”)

+-----+------+
|store|prod |
+-----+------+
|51 |42 |
|51 |42 |
|89 |44 |

最佳答案

您可以拥有列表中所有列的列表,可以是硬编码的,也可以是从其他元数据准备的并使用 intersect

val columnNames = Seq("c1","c2","c3","c4")

df.select( df.columns.intersect(columnNames).map(x=>col(x)): _* ).show()

关于sql - 仅选择存在的字段(SQL 或 Scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55226745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com