当前位置:   article > 正文

SparkException: Dynamic partition strict mode requires at least one static partition column

dynamic partition strict mode requires at least one static partition column.

创建表后却无法写入数据?
插入失败
报错内容:== 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

解决:设置代码中的参数

    // 做动态分区, 所以要先设定partition参数
    // default是false, 需要额外下指令打开这个开关
    ss.sqlContext.setConf("hive.exec.dynamic.partition;","true");
    ss.sqlContext.setConf("hive.exec.dynamic.partition.mode","nonstrict");
  • 1
  • 2
  • 3
  • 4

Tips:在获取连接时指定config,或者连接后设置setConf均可。
连接时设置

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号