小编Raf*_*ero的帖子

使用 createView 和 allowDiskUse

在 mongo 聚合框架中可以使用选项{allowDiskUse:true}。这在一些无法在内存中执行的繁重操作(例如排序)时非常有用。

我正在尝试对createView(在 Mongo 3.4 中可用)做同样的事情,但我找不到allowDiskUse可以引入的地方。

在正常的聚合框架中:

db.mydb.aggregate([....,{$sort:{"a":-1}}],{allowDiskUse:true})
Run Code Online (Sandbox Code Playgroud)

有效,但是:

db.createView("newview","mydb",[....,{$sort:{"a":-1}}],{allowDiskUse:true})
Run Code Online (Sandbox Code Playgroud)

产生错误

The field 'allowDiskUse' is not a valid collection option.
Run Code Online (Sandbox Code Playgroud)

当然,我可以删除{allowDiskUse:true}. 然后创建视图,但是当我尝试时:

> db.newview.find()
Error: error: {
    "ok" : 0,
    "errmsg" : "Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.",
    "code" : 16819,
    "codeName" : "Location16819"
}
Run Code Online (Sandbox Code Playgroud)

如何创建包含大型操作的视图?

mongodb aggregation-framework

6
推荐指数
1
解决办法
1810
查看次数

Spark MLlib 中的朴素贝叶斯

我有一个带有这种结构的小文件“naivebayestest.txt”

10 1:1
20 1:2
20 1:2
Run Code Online (Sandbox Code Playgroud)

从这些数据中,我试图对向量 (1) 进行分类。如果我正确理解贝叶斯,则 (1) 的标签应该是 10(概率为 1!)。Spark MLlib 中的程序:

String path = "/usr/local/spark/data/mllib/bayestest.txt";
JavaRDD<LabeledPoint> training = MLUtils.loadLibSVMFile(jsc.sc(), path).toJavaRDD();
final NaiveBayesModel model = NaiveBayes.train(training.rdd());
Vector v = Vectors.dense(1);
double prediccion = model.predict(v);
System.out.println("Vector: "+v+" prediction: "+prediccion);
Run Code Online (Sandbox Code Playgroud)

显示 Vector: [1.0] prediction: 20.0

我用 1050 个元素的训练集获得了相同的结果,形式的 350 (1/3)10 1:1和其余的20 1:2(2/3),我仍然得到相同的预测 20.0 向量 1。

我究竟做错了什么?

java apache-spark naivebayes apache-spark-mllib

5
推荐指数
1
解决办法
787
查看次数

$ gte聚合表达式出错:"表达式$ gte只取2个参数.1传入."

我在尝试时遇到此错误

db.any.aggregate([
 {  "$project": { n: {$gte: 0}}    }
])
Run Code Online (Sandbox Code Playgroud)

我肯定必须是明显的东西,但我找不到错误.从shell客户端使用mongo 3.4

mongodb

2
推荐指数
1
解决办法
4194
查看次数

从Spark 2.0中的列表创建JavaRDD

从列表中创建JavaRDD的常用方法是使用 JavaSparkContext.parallelize(List)

但是,Spark 2.0 SparkSession用作入口点,我不知道如何从List创建JavaRDD

spark-java

1
推荐指数
1
解决办法
3001
查看次数