У меня есть два больших файла .csv, которые я импортировал с помощью командлета import-csv. Я провел много поисков и попыток, и, наконец, я пишу, чтобы попросить помощи, чтобы сделать это проще.
Мне нужно переместиться через первый массив, который будет иметь размер от 80 до 500 тыс. Строк. Каждый объект в этих массивах имеет несколько свойств, и мне нужно найти соответствующую запись во втором массиве того же размера, соответствующего свойству оттуда.
Я импортирую их как [systems.collection. arrayList] и я попытался разместить их как хеш-таблицы. Я даже пытался испортить LINQ, о котором упоминалось в нескольких других постах.
Есть ли шанс, что кто-нибудь сможет дать совет или понять, как сделать это быстрее? Такое ощущение, что я ищу в одном стоге сена совпадение с сеном в другом стеке.
$ImportTime1 = Measure-Command {
[System.Collections.ArrayList]$fileList1 = Import-csv file1.csv
[System.Collections.ArrayList]$fileSorted1 = ($fileList1 | Sort-Object -property 'Property1' -Unique -Descending)
Remove-Variable fileList1
}
$ImportTime2 = Measure-Command {
[System.Collections.ArrayList]$fileList2 = Import-csv file2.csv
[System.Collections.ArrayList]$fileSorted2 = ($fileList2 | Sort-Object -property 'Property1' -Unique -Descending)
Remove-Variable fileList2
}
$fileSorted1.foreach({
$varible1 = $_
$target = $fileSorted2.where({$_ -eq $variable1})
###do some other stuff
})