21、spark读取Hudi的EXTERNAL Hive表,报错,找不到cannot resolve ‘`xxxxx`‘ given input columns:

使用的是spark 2.4.5;hudi0.10.0;

//代码很检点,就读出数据进行过滤
spark.table("cloud_brain.t_audit").select("id","createuser")

在这里插入图片描述
debug一遍后,找到原因:这个hudi的hive表之前进行过 add field,但是spark.table的时候,会默认先从hive表的TBLPROPERTIES 中的spark.sql.sources.schema.part.0获取schema,而这个属性参数,只有spark往hive写数据的时候才会发生变更,而通过hive-sql对表进行增加字段并不会改变这个属性参数。

在这里插入图片描述
问题找到后,解决办法就很简单了,就是将spark.sql.sources.schema.part.0改为和hive表的schema一致即可。因为这个问题的表较多,需要写一段代码来批量监测和处理

  test("check-schema") {
   
   
    Seq("cloud_brain", "electronic_invoice", "kos", "road_park").foreach(dbName => {
   
   
      getHuaweiTables(dbName).foreach(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值