由于Spark SQL不支持insert语句中的列列表,因此出现此错误。所以从insert语句中排除列列表。
下面是我的hive表:
0: jdbc:hive2://hpchdd2-zk-1.hpc.ford.com:218> select * from UDB.emp_details_table; | |||
---|---|---|---|
emp_id | emp_name | emp_dept | emp_joining_date |
1 | AAA | HR | 2018-12-06 |
1 | BBB | HR | 2017-10-26 |
2 | XXX | ADMIN | 2018-10-22 |
2 | YYY | ADMIN | 2015-10-19 |
2 | ZZZ | IT | 2018-05-14 |
3 | GGG | HR | 2018-06-30 |
在这里我通过pyspark使用spark sql插入记录
df = spark.sql(“””insert into UDB.emp_details_table values (‘6′,’VVV’,’IT’,’2018-12-18′)”””);
您可以在下面看到给定记录已插入到我现有的配置单元表中。
emp_id | emp_name | emp_dept | emp_joining_date |
---|---|---|---|
1 | AAA | HR | 2018-12-06 |
1 | BBB | HR | 2017-10-26 |
2 | XXX | ADMIN | 2018-10-22 |
2 | YYY | ADMIN | 2015-10-19 |
2 | ZZZ | IT | 2018-05-14 |
3 | GGG | HR | 2018-06-30 |
6 | VVV | IT | 2018-12-18 |
将您的spark sql查询更改为:spark.sql(“”“插入ss.tab值(’1’,’demo’,’demo’)”“”);
注意:我使用spark 2.3,如果你使用的是spark 1.6版本,你需要使用hive上下文。