我正在尝试使用以下语法从spark插入hive表。
tranl1.write.mode("overwrite").partitionBy("t_date").insertInto("tran_spark_part")
注意:tranl1
是DF,我创建它是为了从oracle加载数据。
val tranl1 = sqlContext.load("jdbc", Map("url" -> "jdbc:oracle:thin:userid/pwd@localhost:portid","dbtable" -> "(select a.*,to_char(to_date(trunc(txn_date,'DD'),'dd-MM-yy')) as t_date from table a WHERE TXN_DATE >= TRUNC(sysdate,'DD'))"))
我在蜂巢中的表:
create table tran_spark_part(id string,amount string,creditaccount string,creditbankname string,creditvpa string,customerid string,debitaccount string,debitbankname string,debitvpa string,irc string,refid string,remarks string,rrn string,status string,txn_date string,txnid string,type string,expiry_date string,approvalnum string,msgid string,seqno string,upirc string,reversal string,trantype 字符串)由(date1 string);
分区
然而,当我跑
时tranl1.write.mode("overwrite").partitionBy("t_date").insertInto("tran_spark_part")
它给出错误:
java.util.NoSuchElementException: key not found: date1
请帮助我,我错过了什么或做错了什么?