首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型CSV的PowerShell处理非常慢-有更好的方法吗?

大型CSV的PowerShell处理非常慢-有更好的方法吗?
EN

Stack Overflow用户
提问于 2014-03-10 18:41:19
回答 1查看 1.2K关注 0票数 1

使用Powershell,我正在运行一个foreach循环。循环中的一个步骤是在csv文件中找到一个匹配的-

代码语言:javascript
复制
import-csv ".\RateCard.csv" | where-object{$($Item.'From Number') -match "^\+?($($_.Destination))\w*$"}

foreach循环在一个月的时间内处理大约100,000条记录,并在几分钟内完成,而不需要csv查找。在添加csv查找之后,我可以看到每次查找大约需要5-10秒。csv文件有40,000行和大约10列。

虽然我理解客户端处理将变得更慢,而且我可能应该考虑使用SQL,但我想知道是否有更快的方法来做到这一点。我想要使用流读取器,但不知道如何进行匹配查找。

如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 19:41:09

正如mjolinor所建议的,将Import移到ForEach循环之外:

代码语言:javascript
复制
$RateCard = importcsv ".\ratecard.csv"
ForEach($Item in $Items){
    if($RateCard.Destination -contains $Item.'From Number'){
        Do Stuff
    }
}

我只是在CSV的目标字段中添加了if /a函数来检查条目的From Number是否被找到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22308590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档