我有一个scala作业,可以通过spark sql查询Hive表,然后对返回的数据集执行其他操作:
case class Person(name: String, age: Int)
//create spark session
val ss: SparkSession = SparkSession.builder()
.master("yarn")
.appName("my-app")
.enableHiveSupport()
.getOrCreate()
//read hive table
val ds = ss.sql("select * from person where age > 20").as[Person]
ds.show()
对于基于HDFS的常规Hive表,使用spark-submit
可以正常工作。但是当该表是基于Mongo的Hive表时,出现以下错误消息:
ERROR hive.log: error in initSerDe: java.lang.ClassNotFoundException Class com.mongodb.hadoop.hive.BSONSerDe not found
java.lang.ClassNotFoundException: Class com.mongodb.hadoop.hive.BSONSerDe not found
fyi:我在--jars option
的{{1}}中加入了mongo驱动程序:
spark-submit
还有其他我想念的mongo驱动程序或我做错了吗?