pyspark 数据帧的区分大小写的列删除操作?



从一些简短的测试来看,pyspark 数据帧的列删除函数似乎不区分大小写,例如。

from pyspark.sql import SparkSession
from pyspark.sql.functions import *
import sys
sparkSession = SparkSession.builder.appName("my-session").getOrCreate()
dff = sparkSession.createDataFrame([(10,123), (14,456), (16,678)], ["age", "AGE"])
>>> dff.show()
+---+---+
|age|AGE|
+---+---+
| 10|123|
| 14|456|
| 16|678|
+---+---+
>>> dff.drop("AGE")
DataFrame[]
>>> dff_dropped = dff.drop("AGE")
>>> dff_dropped.show()
++
||
++
||
||
||
++
"""
What I'd like to see here is:
+---+
|age|
+---+
| 10|
| 14|
| 16|
+---+
"""

有没有办法以区分大小写的方式删除数据帧列?(在引发JIRA讨论中看到了一些与此相关的评论,但正在寻找仅以临时方式(不是全局/持久设置(应用于drop()操作的内容(。

#Add this before using drop
sqlContext.sql("set spark.sql.caseSensitive=true")

如果您有两列具有 同名