Похоже, улей replace columns не работает с искрой 2.2.1, а также с 2.3.1
replace columns
alterSchemaSql : alter table myschema.mytable replace columns (a int,b int,d int) Exception in thread "main" org.apache.spark.sql.catalyst.parser.ParseException: Operation not allowed: alter table replace columns(line 2, pos 6)
Похоже, что это было исправлено для версии ADD COLUMNS 2.2 и далее.Это также работает для меня, но replace columns по-прежнему не удается.
ADD COLUMNS
Операция не разрешена: изменить таблицу, добавить столбцы (строка 1, позиция 0)
В следующих документах сказано, что она должна поддерживаться.Не уверен, почему мне это не удается.https://spark.apache.org/docs/2.2.0/sql-programming-guide.html#supported-hive-features
https://docs.databricks.com/spark/latest/spark-sql/language-manual/alter-table-or-view.html#replace-columns
К сожалению, похоже, что ALTER TABLE table REPLACE не реализовано Spark.
ALTER TABLE table REPLACE
Взгляните на SparkSqlParser.scala: SparkSqlParser.scala
SparkSqlParser.scala
Там вы можете увидетькакие операторы SQL работают с Spark.