Выбрать все, кроме определенного столбца в Spark SQL
Я хочу выбрать все столбцы в таблице, кроме StudentAddress, и поэтому я написал следующий запрос:
select `(StudentAddress)?+.+` from student;
Это дает следующую ошибку в Squirrel Sql клиенте.
org.apache.spark.sql.AnalysisException: не удается разрешить '(StudentAddress)?+.+
заданные входные столбцы
2 ответа
Решение
Вы можете использовать метод drop() в API DataFrame, чтобы удалить определенный столбец, а затем выбрать все столбцы.
Например:
val df = hiveContext.read.table("student")
val dfWithoutStudentAddress = df.drop("StudentAddress").select("*")
С использованием
spark sql
попробуй с
select * except(<columns to be excluded>) from tablename
Example:
select * from tmp
#+----+----+----+----+
#|col1|col2|col3|col4|
#+----+----+----+----+
#|a |b |c |d |
#+----+----+----+----+
#exclude col1,col2
select * except(col1,col2) from table_name
#+----+----+
#|col3|col4|
#+----+----+
#|c |d |
#+----+----+