Этот метод возвращает список Столбцы , а некоторые из столбцов устанавливаются на null
при использовании этого списка для выбора столбцов из фрейма данных.
allCols
должен содержать все столбцы фрейма данных, а myCols
должен содержать столбцы, которые вы хотите сохранить. Все остальные столбцы, не содержащиеся в myCols
, будут установлены на null
:
val df = spark.createDataFrame(Seq((1,2,3),(4,5,6),(7,8,9))).toDF("a","b","c")
df.show
val columns = expr(Set("a"), df.columns.toSet)
df.select(columns:_*).show
будет печатать
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 2| 3|
| 4| 5| 6|
| 7| 8| 9|
+---+---+---+
+---+----+----+
| a| b| c|
+---+----+----+
| 1|null|null|
| 4|null|null|
| 7|null|null|
+---+----+----+
Внутри вашего метода каждая запись allCols
либосопоставляется с фактическим столбцом или литералом null
с использованием сопоставления с шаблоном Scala magic.