Scala 总结项目一---Spark连接不上Hive以及scala代码中bigInt类型报错问题

二、Scala连接Hive出现问题

难点:

​ 原项目是没有用到Hive的连接使用,所以要自己找连接的方法,我查看网上的连接方法,都是将Hive的配置文件 hive-site.xml 放在resoures下,然后配置连接conf,但是这套代码怎么着也连不上。

解决方案:

​ 和杨大哥沟通后,一直没有解决这个问题的方法,后来他说了一番话:你连接Hive也是为了操作表,你直接读取HDFS的文件路径可以转成DataFream然后进行SparkSql操作的啊。所以就转换了思路,不再去纠结如何连接Hive,选择直接将文件在程序中转成对应临时表去操作数据。
​ 或者是在集群直接连hive表操作,这两个方案都有一个问题,那就是无法在本地做调试,只能在集群上调试,出差错改完代码再放在集群上测试。

总结:

​ 有时候一个问题遇到瓶颈的话,可以转换自己的思维方式,在这些方面网上倒是有scala的这些相关操作,直接创建conf去根据字段建临时表,但是需要注意的是字段类型要对上。

三、连接Hive临时表字段类型对不上

难点:

​ 在IDEA本地是可以测试的通的,但是放在集群上部署的话,他会报错,错误信息有2种,一个就是,操作的临时表有脏数据,可能这个数据没有进行null值判断;还有一个错误就是Java.long.int/double 不适合Spark的bigInt类型,这个问题的难点就是:在本地可以测试出数据,但是在集群部署上跑不出来数据,就报这个错,网上的资源也很有限。庆龙大哥也没什么办法,只能让我去换思路解决。

解决方案:

​ 还是回到上面2的难点上,但是庆龙大哥说,你在代码中不需要去连接Hive,直接建好相应的表去操作表数据就行了,因为Spark底层配置好了连接Hive数据库的一些方法,所以我就去建了相应的Hive表和导入相应的数据,果然可以直接操作Hive,问题得以解决。

总结:

​ 还是有时候需要去转换新思路,碰到难走的坑就不要一直被陷下去,看看有没有别的路可以绕过这个坑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值