INSERT INTO hive_table SELECT b.id,a.id FROM hive_table_1 a,hive_table_2 b WHERE a.id BETWEEN b.id1 AND b.id2;
在 上执行这样的 SQL spark-sql 有错误:
ERROR CliDriver: org.apache.spark.sql.AnalysisException: missing TABLE at 'hive_table' near '<EOF>'; line 1 pos 12
at org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:289)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:41)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:40)
但是在 hive-cli 或 beeline 中运行正常。
有什么建议?
最佳答案
您的查询中似乎有一个错字 - 您编写了 a,id 而不是 a.id 来访问表 a 的字段 id。
此代码应该可以正常工作:
INSERT INTO hive_table SELECT b.id,a.id
FROM hive_table_1 a,hive_table_2 b
WHERE a.id BETWEEN b.id1 AND b.id2;
我发现了你的错误:spark 没有从头开始选择 hive-site.xml,
您必须使用一种解决方法。
可以找到可能的解决方法 there
关于apache-spark - Spark SQL 插入选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31310279/