gpt4 book ai didi

c# - 如何使用 PLINQ 在 C# 中实现 MapReduce?

转载 作者:太空狗 更新时间:2023-10-29 20:40:16 25 4
gpt4 key购买 nike

如何使用 PLINQ 在 C# 中实现 MapReduce?

假设,您有 7-8 个 Web 服务来收集数据,并且在每次接收(异步方式)时,您必须将该数据放入数据库的某些表中,在我的例子中是 SQL Server 2008。例如,您的数据从每个 Web 服务获取的是:

 <employees>
<employee>
<name>Ramiz</name>
</employee>
<employee>
<name>Aamir</name>
</employee>
<employee>
<name>Zubair</name>
</employee>
</employees>

并且,在每次收到响应时,此数据都会进入表名 - Employee:

Employee
===
EmployeeID (PK)
EmployeeName

一旦数据进入表格,它必须作为 json 返回给客户端,这是 ASP.NET (MVC 3) 应用程序使用客户端 JavaScript (ajax) 进行此调用。

假设,一个 WebServiceEmployee1 返回了数据,其他 6 个在队列中(仍在尝试获取数据)。然后,它应该将结果集注册到表中,而不是等待其他 6 个,并将插入的员工的数据以 json 形式返回给客户端。并且,在其他人以同样的方式做的同时保持联系和做事。

请看,我的工具包中有 ASP.NET MVC 3 (Razor)、SQL SERVER 2008 R2、jQuery。

谢谢。

最佳答案

在不清楚您要执行的处理的情况下,我建议您阅读以下 MSDN 文档:http://bit.ly/Ir7Nvk它使用 PLINQ 描述了 map/reduce,示例如下:

public IDMultisetItemList PotentialFriendsPLinq(SubscriberID id, 
int maxCandidates)
{
var candidates =
subscribers[id].Friends.AsParallel()
.SelectMany(friend => subscribers[friend].Friends)
.Where(foaf => foaf != id &&
!(subscribers[id].Friends.Contains(foaf)))
.GroupBy(foaf => foaf)
.Select(foafGroup => new IDMultisetItem(foafGroup.Key,
foafGroup.Count()));
return Multiset.MostNumerous(candidates, maxCandidates);
}

“映射”是 Friends.AsParallelSelectManyWhere,“reduce”阶段是 GroupBy选择

关于c# - 如何使用 PLINQ 在 C# 中实现 MapReduce?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com