草庐IT

language-scala

全部标签

mongodb - 尝试使用 scala 从 Spark 向 mongodb 写入 $group 聚合时出现重复键错误

编辑:此编辑可能会改变此问题的进程。在spark上运行的mongodb聚合(特别是$group)在写回集合时创建了重复的_id记录。结果,mongodb抛出重复键错误。顺便说一句,这个查询在mongoshell中运行得很好。这是我做的:我拿了一个小数据集,并将(聚合)spark代码的结果打印到控制台,而不是写入集合。我打印了完整的结果集,但在_id字段中发现了重复项。数据看起来像这样:(已编辑)Document{{_id=Document{{prodCategory=123},{proId=ABC},{‌​location=US}},details=[Document{{....}},

Mongodb 文档到 Scala 案例类

我正在使用MongoDBscala驱动程序。我在从MongoDB获取记录时遇到问题。以下是我的MongoDB初始化privatevalclient:MongoClient=MongoClient()privatevaldatabase:MongoDatabase=client.getDatabase(“rulemgntdb”)valWorkOrdercollection:MongoCollection[Document]=database.getCollection("workOrder")查找查询:MongoFactory.WorkOrdercollection.find().col

mongodb - 使用scala和lift,如何对mongodb集合中的文档进行高效的过滤操作?

我在mongodb中有一个用户集合,我正在使用lift/scala执行User.findAll操作并检索在特定时间范围内创建的用户数。我正在利用objectId的getTime方法,但是我需要应用一些方法并相乘以获取存储在每个文档中的字符串,将其转换回objectID并将毫秒转换为秒。这是最后一小时创建的用户的代码行:valusers=User.findAll.filter{u:User=>((((ObjectId.massageToObjectId(u._id)).getTime)/1000)我需要找到一种在数据库中执行此操作的方法,而不是将所有数据都放入内存中,然后使用该函数对其进

如何定义Scala中可以用于特定类型的所有子类的实例?

我正在尝试定义一个实例Show(来自猫0.9),可用于ADT的所有成员,如下:import$ivy.`org.typelevel::cats:0.9.0`,cats.ShowsealedabstractclassColour(valname:String)implicitvalColourShow=newShow[Colour]{defshow(c:Colour)=c.name}objectColour{objectRedextendsColour("Red")objectBlueextendsColour("Blue")}importShow._println(Colour.Red.show

scala - 使用 Casbah/Scala 在 MongoDB 上执行自定义函数

我已经使用其命令行客户端在MongoDB中定义了一个函数。functionsomething(){...}我想知道如何使用Scala中的casbah执行自定义MongoDB函数。有什么建议吗?谢谢, 最佳答案 有几种方法可以在服务器上运行任意javascript代码。您可以将其作为字符串提供客户端并将其发送到服务器进行评估,或者在服务器上安装该功能首先,如此处记录:http://docs.mongodb.org/manual/core/server-side-javascript/服务器端函数是按数据库注册的,在一个名为system

Scala Lift - 连接到远程 MongoDB

目前我的应用程序在我的本地机器上运行,在Boot.scala中我有:MongoDB.defineDb(DefaultMongoIdentifier,MongoAddress(MongoHost("127.0.0.1",27017),"platform"))我已成功将应用程序部署到云提供商,并且正在设置数据库@mongohq.com我需要更改什么才能启用该应用程序连接?我在这里看过:https://www.assembla.com/wiki/show/liftweb/Mongo_Configuration但是我对mongohq提供的连接细节有点困惑,他们只提供:MongoURImongo

scala - 有没有更惯用的方法来使用 Casbah 检查密码?

我有以下代码:defauthenticateByUsername(username:String,password:String):Boolean={valuser=users.findOne(MongoDBObject(USERNAME->username))if(user.isDefined){valpw=user.get.getAs(PASSWORD)if(pw.isDefined)BCrypt.checkpw(pw.get,password)elsefalse}elsefalse}有没有更惯用的方法来做到这一点?这是一个if-else噩梦,在Scala中似乎不正确。

mongodb - Casbah Mongo 作为 scala 数组 : is this the most elegant way?

各位,这是从casbah获取scalaList的最优雅的方式吗?trains是文档中的子键,其值为数组我有点惊讶我必须执行instanceOf然后执行asScala才能获得一流的Scala列表我还能做更好或更符合scala的事情吗?valmongoconn=MongoConnection("titan"){"traininfo"}{"trains"}valresult=mongoconn.find()println()for{x 最佳答案 为什么不简单valcollection=MongoConnection("titan")("t

如何从表中创建Scala中的数据帧

我正在尝试创建一个dataframe对于Scala中的两个桌子并获得syntaxerror试图运行时。Scala非常新。importorg.apache.spark.sql.{DataFrame,SparkSession}importorg.apache.spark.sql.functions._objecttestfunctionextendsApp{valsession=SparkSession.builder().master("local").getOrCreate()importsession.implicits._valsqlContext=SQLContext(sc)valdf1

mongodb - 如何在 java/scala 中使用 inc 运算符创建 Decimal128 字段

我有以下文档结构:{"moneys":{"someKey":NumberDecimal(99)..."someOtherRandomKey":NumberDecimal(99)}{我想要的:当不存在的字段递增时,创建该字段NumberDecimal值。我用scala驱动程序尝试过,但不能这样做://notcompilescollection.findOneAndUpdate(filters,Updates.inc("someOtherKey",newDecimal128(50)))因为Updates.inc(k,v)需要Number;Decimal128不是Number我认为问题不在驱