У меня есть задание scala, которое запрашивает таблицы Hive через spark sql, а затем выполняет другие действия с возвращенным набором данных:
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()
Для обычных таблиц Hive на основе HDFS это работает без проблем при использовании spark-submit
. Но когда таблица представляет собой таблицу 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
к сведению: я включил драйверы монго в --jars option
из spark-submit
:
spark-submit \
--class "com.example.MyApp" \
--jars /lib/mongo-java-driver-3.9.1.jar,/lib/mongo-hadoop-hive-2.0.2.jar,/lib/mongo-hadoop-core-2.0.2.jar \
--master yarn \
--deploy-mode cluster \
myapp-0.1.jar
есть ли другой пропавший драйвер монго или что я делаю не так?