火花塞覆盖测试

时间:2020-01-30 16:11:44

标签: apache-spark pyspark apache-spark-sql

我是pyspark的新手,想玩插入覆盖。

我创建了一个包含许多记录的 test_overwrite 表。 然后,从 test_overwrite 创建了一个空的 test_overwrite_3 表,并将一些数据放入其中。 (我确保结构相同。)

插入覆盖test_overwrite_3从test_overwrite限制3中选择*

我希望在执行 test_overwrite_3 表上方的代码后,使用一些虚拟数据将被删除,并且应该在我的 test_overwrite 表中包含3条记录。

相反,我收到了这样的错误消息:

* SQL语句中的错误:ParseException:输入'insert overwrite test_overwrite_3'(行1,位置17)上没有可行的选择 == SQL ==插入覆盖test_overwrite_3 ----------------- ^^^从test_overwrite *中选择*

任何人都可以帮助解决问题吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

no viable alternative at input 'insert overwrite test_overwrite_3

解析错误,而不是类型错误。 see this

我可以看到您的声明中缺少表关键字。

示例是:

sql(
      """
        |INSERT OVERWRITE TABLE table_with_partition
        |partition (p1='a',p2='b',p3='c',p4='c',p5='4')
        |SELECT 'blarr' FROM tmp_table
      """.stripMargin)