最近在使用spark sql 执行hive语句时碰到异常信息如下:
Class org.openx.data.jsonserde.JsonSerDe not found Exception
开始以为时hive环境有问题,把sql语句拿到hive环境单独跑没有问题,排除掉这项。若有问题,参考解决方案。
https://www.it610.com/article/1282643683400761344.htm
使用spark-submit --jar 提交掉时候已经引入了json-serde-1.3-jar-with-dependencies.jar包,Class.forName("org.openx.data.jsonserde.JsonSerDe")也能找到。
但是执行sql掉时候还是报ClassNotFound exception。想到hive 提交UDF依赖报时使用了add jar命令,于是在spark sql中执行命令:
sparkSession.sql("add jar hdfs://nameservice1/application/lib/spark2/json-serde-1.3-jar-with-dependencies.jar")
解决问题。
总结:Spark SQL 缺少依赖包时,使用命令 “add jar *.jar”来添加。
参考文章:
https://www.it610.com/article/1282643683400761344.htm
http://lxw1234.com/archives/2015/07/428.htm