Просто используйте простое выделение, я предполагаю, что пустые столбцы равны "".
для ввода
df = sqlContext.createDataFrame([(1,"", "x"," "), (2,"", "b"," "), (5,"", "c"," "), (8,"", "d"," ")], ("st"," ", "ani"," "))
+---+---+---+---+
| st| |ani| |
+---+---+---+---+
| 1| | x| |
| 2| | b| |
| 5| | c| |
| 8| | d| |
+---+---+---+---+
a=list(set(df.columns))
a.remove(" ")
df=df.select(a)
df.show()
+---+---+
|ani| st|
+---+---+
| x| 1|
| b| 2|
| c| 5|
| d| 8|
+---+---+
"""
Do your Operations
"""
после выполнения вышеуказанного шага go для вашей задачи. это удалит пустые столбцы
Новое редактирование:
Нет такого способа отбросить пустые столбцы во время чтения, вы должны сделать это самостоятельно.
Вы можете сделать это так:
a = list(set(df.columns))
new_col = [x for x in a if not x.startswith("col")] #or what ever they start with
df=df.select(new_col)