创建表后却无法写入数据?
报错内容:== Exception in thread “main” org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
at org.apache.spark.sql.hive.execution.InsertIntoHiveTable.processInsert(InsertIntoHiveTable.scala:157) ==
原因:hive使用了分区,并且是动态分区
动态分区:比如以时间作为分区,那么分区就是每天都在增加,即是动态分区
因为要做动态分区, 所以要先设定partition参数
由于default是false, 需要额外下指令打开这个开关
default是strick, 表示不允许动态分区, 所以要改成nostrick文章来源:https://www.toymoban.com/news/detail-847724.html
解决:设置代码中的参数
// 做动态分区, 所以要先设定partition参数
// default是false, 需要额外下指令打开这个开关
ss.sqlContext.setConf("hive.exec.dynamic.partition;","true");
ss.sqlContext.setConf("hive.exec.dynamic.partition.mode","nonstrict");
Tips:在获取连接时指定config,或者连接后设置setConf均可。
文章来源地址https://www.toymoban.com/news/detail-847724.html
到了这里,关于SparkException: Dynamic partition strict mode requires at least one static partition column的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!