com.mongodb.hadoop.hive.BSONSerDe не найден в SparkSQL для таблиц Hive на основе MongoDB - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть задание 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

есть ли другой пропавший драйвер монго или что я делаю не так?

...