我是 Spark 的新手,我有一个包含此类数据的 csv 文件:
date, accidents, injured
2015/20/03 18:00 15, 5
2015/20/03 18:30 25, 4
2015/20/03 21:10 14, 7
2015/20/02 21:00 15, 6
Run Code Online (Sandbox Code Playgroud)
我想在它发生的特定时间聚合这些数据。我的想法是将日期子串到“年/月/日 hh”,没有分钟,这样我就可以把它作为一个键。我想给出每小时事故和受伤的平均值。也许 pyspark 有一种不同的、更聪明的方法?
谢谢你们!
我有一张看起来如下的表格
ID | action | flag
1 | A | 1
1 | A | 1
1 | B | 1
2 | A | 1
2 | A | 1
2 | B | 1
2 | B | 1
Run Code Online (Sandbox Code Playgroud)
我想执行以下操作:如果对于相同的ID的值乙在动作列出现多于1次,然后我想将设置标志此列ID到0。
结果应如下所示:
ID | action | flag
1 | A | 1
1 | A | 1
1 | B | 1
2 | A …Run Code Online (Sandbox Code Playgroud) 如我们所知,如果我们想获得一个 _id 数组,我们可以这样做:
db.collections.distinct("_id");
Run Code Online (Sandbox Code Playgroud)
我的问题是如果我需要用聚合来做一个复杂的逻辑,我怎么能得到一个 _id 数组。前任:
db.getCollection('users').aggregate({
$match : {
is_register_completed : { $ne : true}
}
}
//other operator like $lookup, $group
,
{
$project : {_id:1}
}
)
Run Code Online (Sandbox Code Playgroud)
我得到
{
"_id" : "1",
"_id" : "2"
}
Run Code Online (Sandbox Code Playgroud)
我想要的就像我们做的不同
{[1,2]}
Run Code Online (Sandbox Code Playgroud)
更新: 这就是我尝试用 $group 做的事情
db.getCollection('users').aggregate({
$match : {
is_register_completed : { $ne : true}
}
},
{
$group: {
_id:null, all:{$addToSet: "$_id"}
}
}, {$project: {_id:0,all:1}}
)
Run Code Online (Sandbox Code Playgroud)
但我仍然得到
{
all : ["1","2"]
}
Run Code Online (Sandbox Code Playgroud)
或者我可以.map(function(el) { return el._id …
我有一个具有以下格式的文件:
SET, 0, 0, 0, 6938987, 0, 4
SET, 1, 1, 6938997, 128, 0, 0
SET, 2, 4, 6938998, 145, 0, 2
SET, 0, 9, 6938998, 147, 0, 0
SET, 1, 11, 6938998, 149, 0, 0
....
SET, 1, 30, 6946103, 6, 0, 0
SET, 2, 30, 6946104, 6, 0, 2
GET, 0, 30, 6946104, 8, 0, 0
SET, 1, 30, 6946105, 8, 0, 0
GET, 2, 30, 6946106, 7, 0, 0
Run Code Online (Sandbox Code Playgroud)
第 5 列代表我从系统测量的毫秒(从 Java 的 System.nanoTime() 转换而来)。因此,这些不代表任何日期/时间格式。我想以 5s …
非常感谢您的时间。我正在处理一个集合,我想对同一日期的项目求和。考虑以下示例,这里我有两个文档,其中存储了 user_id 和 played 事件。我想总结那些日期相同的文件。在我的案例日期中,2017-01-25 有两个结果,而 2017-01-26 只有一个。请查看预期的结果。
{
"_id" : ObjectId("58891b5656a961427e7b23c6"),
"user_id" : 122,
"played_event" : [
{
"date" : ISODate("2017-01-25T21:43:48.146Z"),
"totalPlayed" : 0,
},
{
"date" : ISODate("2017-01-26T22:26:03.273Z"),
"totalPlayed" : 838,
},
]
}
{
"_id" : ObjectId("58891b5656a961427e7b23f3"),
"user_id" : 130,
"played_event" : [
{
"date" : ISODate("2017-01-25T21:43:48.146Z"),
"totalPlayed" : 0,
},
{
"date" : ISODate("2017-01-30T22:26:03.273Z"),
"totalPlayed" : 838,
},
]
}
Run Code Online (Sandbox Code Playgroud)
预期结果
{
"result" : [
{
"date" : "2017-01-25"
"sum" : 2
},
{
"date":"2017-01-26"
"sum":1 …Run Code Online (Sandbox Code Playgroud) 我有一个包含很多时间序列的数据框:
1 0:03 B 1
2 0:05 A 1
3 0:05 A 1
4 0:05 B 1
5 0:10 A 1
6 0:10 B 1
7 0:14 B 1
8 0:18 A 1
9 0:20 A 1
10 0:23 B 1
11 0:30 A 1
Run Code Online (Sandbox Code Playgroud)
我想将时间序列分组为每 6 分钟并计算 A 和 B 的频率:
1 0:06 A 2
2 0:06 B 2
3 0:12 A 1
4 0:12 B 1
5 0:18 A 1
6 0:24 A 1
7 0:24 B 1 …Run Code Online (Sandbox Code Playgroud) df.groupby(['Month']).agg({'Status' : ['count']})
Run Code Online (Sandbox Code Playgroud)
上面的行将数据框分组Month并计算Status每个月的数量。有没有办法只得到一个计数在哪里Status=X?类似于下面不正确的代码:
df.groupby(['Month']).agg({'Status' == 'X' : ['count']})
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我想多少计数Status是X每月。
在阅读了大量帖子后,我意识到如果一个概念/上下文存在聚合根,我们需要为整个概念/上下文创建一个存储库。
如果是这样,我看到内部实体不会有任何存储库。如果是这样,这些内部实体如何保存到数据库中?
我在聚合根下有许多内部实体。所以,想知道如果我需要在聚合根存储库下保存所有内部实体,它会变得臃肿。请建议在这种情况下可以做什么。
此外,我的内部实体将在持久性级别转到他们自己的每个表。如果我不允许以这种方式存储内部实体,请纠正我。
示例
考虑我有一个 Restaurant 作为聚合根。它可以对名为 Review 的实体进行分组。餐厅存在评论,没有它就无法存在。
在这里,如果 Review 是一个内部实体,并且一个餐厅可以有很多评论,Reviews 将保存在一个单独的表中。但是由于餐厅聚合根只有一个餐厅存储库,因此如何/在何处处理保存评论。
domain-driven-design aggregate ddd-repositories aggregateroot dddd
我正在创建一个聚合查询,但我遇到了一些需要转换为 ObjectID 的字段的问题。某些文档在字段(null,'')中没有任何内容,因此我想忽略这些情况。
{
"$project": {
"Company": {
"$toObjectId": "$Company"
},
"Lease": {
"$toObjectId": "$Lease"
},
"Well": {
"$toObjectId": "$Well"
}
}Run Code Online (Sandbox Code Playgroud)
我试过类似的东西:
{$ifNull: [{ $toObjectId: "$Company" }, ''] }
Run Code Online (Sandbox Code Playgroud)
但我仍然收到错误。
解决此问题的最佳方法是什么?
UPDATE
Chemicals.dbo.ChmProductCompositions
SET Vhap = SUM(PercentOfProduct)
FROM
Chemicals.dbo.ChmProductCompositions PC
JOIN Chemicals.dbo.ChmCompositionChemicals CC ON CC.ProductCompositionID = pc.ProductCompositionID
JOIN Chemicals.dbo.ChmChemicals C ON C.ChemicalID = CC.ChemicalID
WHERE IsHazardous = 1
Run Code Online (Sandbox Code Playgroud)
我有上面的查询,我想知道像上面的查询一样获取总和并设置它还是每个特定的总和并设置它?
我还想知道它是否获得总和并将每个设置为总和,我如何获取每个单独项目的总和,然后将其设置为该总和?
aggregate ×10
mongodb ×3
pandas ×2
python ×2
sql-server ×2
dataframe ×1
datetime ×1
dddd ×1
join ×1
pyspark ×1
r ×1
resampling ×1
sql ×1
sql-update ×1
substring ×1
time-series ×1