我是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 *中选择*
任何人都可以帮助解决问题吗? 谢谢!
答案 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)