創(chuàng)建表后卻無法寫入數(shù)據(jù)?
報錯內(nèi)容:== 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使用了分區(qū),并且是動態(tài)分區(qū)
動態(tài)分區(qū):比如以時間作為分區(qū),那么分區(qū)就是每天都在增加,即是動態(tài)分區(qū)
因為要做動態(tài)分區(qū), 所以要先設(shè)定partition參數(shù)
由于default是false, 需要額外下指令打開這個開關(guān)
default是strick, 表示不允許動態(tài)分區(qū), 所以要改成nostrick文章來源:http://www.zghlxwxcb.cn/news/detail-847724.html
解決:設(shè)置代碼中的參數(shù)
// 做動態(tài)分區(qū), 所以要先設(shè)定partition參數(shù)
// default是false, 需要額外下指令打開這個開關(guān)
ss.sqlContext.setConf("hive.exec.dynamic.partition;","true");
ss.sqlContext.setConf("hive.exec.dynamic.partition.mode","nonstrict");
Tips:在獲取連接時指定config,或者連接后設(shè)置setConf均可。
文章來源地址http://www.zghlxwxcb.cn/news/detail-847724.html
到了這里,關(guān)于SparkException: Dynamic partition strict mode requires at least one static partition column的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!