У меня есть 1 таблица в 2 таблицах в моей базе данных. Я пытаюсь сохранить данные из первой таблицы во вторую таблицу, используя insertInto.
CREATE TABLE if not exists dbname.tablename_csv ( id STRING, location STRING, city STRING, country STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ;
CREATE TABLE if not exists dbname.tablename_orc ( id String,location STRING, country String PARTITIONED BY (city string) CLUSTERED BY (country) into 4 buckets ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS ORCFILE tblproperties("orc.compress"="SNAPPY");
var query=spark.sql("id,location,city,country from dbname.tablename_csv")
query.write.insertInto("dbname.tablename_orc")
, но это вызывает проблему. "
"org.apache.spark.sql.AnalysisException: `dbname`.`tablename_orc` requires that the data to be inserted have the same number of columns as the target table: target table has 3 column(s) but the inserted data has 4 column(s), including 0 partition column(s) having constant value(s).;"
Пожалуйста, кто-нибудь подскажет, что еще нужно добавить. Я тоже пытался добавить partitionBy, но получил ту же ошибку и показывал partitionBy не требуется.
query.write.partitionBy("city").insertInto("dbname.tablename_orc")