Операция удаления столбца с учетом регистра для фрейма данных pyspark? - PullRequest
2 голосов
/ 11 октября 2019

Из краткого тестирования выяснилось, что функция удаления столбцов для фреймов данных 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|
+---+
"""

Есть ли способ отбрасывать столбцы фреймов данных с учетом регистра? (Видел некоторые комментарии, связанные с чем-то подобным, в обсуждениях spark JIRA , но искал что-то, только примененное к операции drop() специальным образом ( не является глобальным / постоянным параметром))).

1 Ответ

2 голосов
/ 11 октября 2019
#Add this before using drop
sqlContext.sql("set spark.sql.caseSensitive=true")

Вам необходимо установить регистрочувствительность как true, если у вас есть два столбца с одинаковым именем

...