Как выбрать из кадра данных, когда столбец не является обязательным - PullRequest
0 голосов
/ 03 июля 2018

У меня есть фрейм данных Spark (scala), в котором некоторые столбцы данных являются необязательными, то есть иногда их не существует. Есть ли очень простой способ изменить мое утверждение df.select, чтобы спарк не заботился о том, чтобы столбец не существовал?

Например, сейчас у меня есть: df.select(Seq(col("col1"), col("optionalCol"), col("col2"))).

Я надеялся, что будет какое-то "необязательное" обозначение.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы можете взять столбцы, которые могут вас заинтересовать, а затем отфильтровать те, которые не существуют в кадре данных.

val dfColumns = df.columns.toSet
val columns: Seq[String] = Seq("col1","optionalcol","col2").filter(dfColumns)
df.select(columns)
0 голосов
/ 03 июля 2018

От Документация Spark

Вы можете использовать следующее, чтобы проверить, существует столбец или нет

// returns true if the column exists else returns false
if(df.columns.contains("optional_col")) {
         df.select(Seq(col("col1"), col("optionalCol"), col("col2")))
}    
else {
        df.select(Seq(col("col1"),  col("col2")))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...