spark hwc无法写入现有表

q5iwbnjs  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(346)

在hdp3.1.0、hwc-hive-warehouse-connector-assembly-1.0.0.3.1.0.0-78.jar中,我无法根据数据库向现有表追加(或覆盖)。
我在一个名为dsn的数据集上测试了它,在另一个名为clean\u crypt的数据库上测试失败。两个数据库都是加密的+kerberos

import com.hortonworks.spark.sql.hive.llap.HiveWarehouseSession._
import com.hortonworks.spark.sql.hive.llap.HiveWarehouseSession
val hive = com.hortonworks.spark.sql.hive.llap.HiveWarehouseBuilder.session(spark).build()
hive.execute("show databases").show()
hive.setDatabase("clean_crypt")
val df=hive.execute("select * from test")
df.write.format(HIVE_WAREHOUSE_CONNECTOR).option("table","test").mode("append").save

错误消息是“表已存在”。我尝试覆盖模式但没有成功。如果我把table掉了,它就过去了!!!
你知道吗?

b0zn9rqh

b0zn9rqh1#

这可能与多个用户报告的hwc错误有关。
我发现只有当你尝试使用 partitionBy 在写作方面,比如:

df.write.partitionBy("part")
.mode(SaveMode.Overwrite)
.format(com.hortonworks.hwc.HiveWarehouseSession.HIVE_WAREHOUSE_CONNECTOR)
.option("table", "`default`.`testout`").save;

另一方面,如果你移除 partitionBy 但是如果您使用覆盖模式(而不是append),hwc将删除并重新创建您的表,并且它不会重新应用分区信息。

相关问题