首页 > 解决方案 > 火花塞覆盖测试

问题描述

我是 pyspark 的新手,想玩 Insert Overwrite。

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

插入覆盖 test_overwrite_3 select * from test_overwrite limit 3

我希望在执行带有一些虚拟数据的test_overwrite_3表上方的代码后,它将被删除,并且它应该有来自我的test_overwrite表的 3 条记录。

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

*SQL 语句中的错误:ParseException:在输入“插入覆盖 test_overwrite_3”(第 1 行,位置 17)处没有可行的替代方案 == SQL == 插入覆盖 test_overwrite_3 ----------------- ^^^ select * from test_overwrite*

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

标签: apache-sparkpysparkapache-spark-sql

解决方案


no viable alternative at input 'insert overwrite test_overwrite_3

解析错误,而不是类型错误。看到这个

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

示例是:

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

推荐阅读