我有一个Hive表,存储为orc,与我使用spark作业创建的数据框架具有相同的模式 . 如果我将数据框保存为css,json,text,那么它可以正常工作 . 我可以将这些文件手动迁移到Hive表中 .

但是当我尝试直接插入蜂巢时

df.insertInto("table_name", true)

我在YARN UI中收到此错误:

ERROR ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: cannot resolve 'cast(last_name_2 as array<double>)' due to data type mismatch: cannot cast StringType to ArrayType(DoubleType,true);

我还尝试在调用insert之前注册临时表,并使用:

df.write.mode(SaveMode.Append).saveAsTable("default.table_name")

我究竟做错了什么?