栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

scala使用spark操作mongodb常见no such cmd:aggregate错误

scala使用spark操作mongodb常见no such cmd:aggregate错误

问题描述:

小伙伴们将scala操作mongodb作业提交到spark上运行的时候, 可能会报如下错误:
(1)no such cmd:aggregate exit code -1;
(2)ERROR partitioner.DefaultMongoPartitioner:
WARNING: MongoDB version < 3.2 detected.

原因分析和解决方案:

第一个是因为:使用spark.sql(sqlText=“XXX”),里面使用了类似于count的聚合函数,但是在mongodb2.2.0以下是没有聚合函数的。这里需要将mongodb升级到2.2.0以上。升级后修改pom里面的驱动,与mongdb版本匹配即可。
第二个是因为:mongodb3.2版本以下需要指定spark.mongodb.input.partitioner。可以直接将其升级到3.2以上或者在代码中加入如下配置:

 
// An highlighted block
val sparkConf = new SparkConf().setMaster("spark://192.168.125.129:7077").set("yarn.resourcemanager.hostname", "192.168.125.129").set("spark.executor.instance", "3").set("spark.executor.memory", "512M").setAppName("StatisticsRecommender")
    sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
//加入以下一行即可
    sparkConf.set("spark.mongodb.input.partitioner","MongoShardedPartitioner").set("spark.mongodb.input.partitionerOptions.shardkey","_id")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号