简体   繁体   English

火花插入覆盖测试

[英]spark insert overwrite test

I new to pyspark and would like to play with Insert Overwrite.我是 pyspark 的新手,想玩插入覆盖。

I have created a test_overwrite table with many records.我创建了一个包含许多记录的test_overwrite表。 Then I created an empty test_overwrite_3 table from test_overwrite and put some data in it.然后我从test_overwrite创建了一个空的test_overwrite_3表并将一些数据放入其中。 (I made sure the structure is the same.) (我确保结构是相同的。)

insert overwrite test_overwrite_3 select * from test_overwrite limit 3插入覆盖 test_overwrite_3 select * from test_overwrite limit 3

I would expect that after executing the code above my test_overwrite_3 table with some dummy data would be deleted and it should have 3 records from my test_overwrite table.我希望在执行带有一些虚拟数据的test_overwrite_3表上方的代码后,它会被删除,并且它应该有我的test_overwrite表中的 3 条记录。

Instead I got an error message like this:相反,我收到了这样的错误消息:

*Error in SQL statement: ParseException: no viable alternative at input 'insert overwrite test_overwrite_3'(line 1, pos 17) == SQL == insert overwrite test_overwrite_3 -----------------^^^ select * from test_overwrite* *SQL 语句中的错误:ParseException:在输入“插入覆盖 test_overwrite_3”(第 1 行,位置 17)时没有可行的替代方法 == SQL == 插入覆盖 test_overwrite_3 ----------------- ^^^ 从 test_overwrite* 中选择 *

Can anyone help what went wrong?任何人都可以帮助出了什么问题吗? Thanks!谢谢!

no viable alternative at input 'insert overwrite test_overwrite_3

a parse error, not a type error.解析错误,而不是类型错误。 see this 看到这个

I could see table keyword is missing in your statement.我可以看到您的语句中缺少 table 关键字。

Example is :例子是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM