Spark SQL插入到选择问题中

时间:2015-07-09 07:01:16

标签: apache-spark hive apache-spark-sql

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-sql 上执行此类错误:

  

错误CliDriver:org.apache.spark.sql.AnalysisException:在'< EOF>'附近的'hive_table'处缺少TABLE;第1行pos 12           在org.apache.spark.sql.hive.HiveQl $ .createPlan(HiveQl.scala:289)
          在org.apache.spark.sql.hive.ExtendedHiveQlParser $$ anonfun $ hiveQl $ 1.apply(ExtendedHiveQlParser.scala:41)
          在org.apache.spark.sql.hive.ExtendedHiveQlParser $$ anonfun $ hiveQl $ 1.apply(ExtendedHiveQlParser.scala:40)

但是在hive-cli或beeline中运行正常。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的查询中似乎存在拼写错误 - 您编写了一个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