Bonjour,
Je souhaiterais fusionner deux fichiers txt/csv dont un fait environ 1200000 lignes à partir d'une colonne commune comme clé.
Pouvez-vous svp m'aider afin de trouver une démarche avec un traitement rapide ?
Cordialement
Raidstorm14
Bonjour,
Je souhaiterais fusionner deux fichiers txt/csv dont un fait environ 1200000 lignes à partir d'une colonne commune comme clé.
Pouvez-vous svp m'aider afin de trouver une démarche avec un traitement rapide ?
Cordialement
Raidstorm14
Bonjour,
Quel type de fusion/modification ? Ajout de certaine colonne ?
Il y a un fichier de référence (jointure left ou right) ? Ou pas (jointure full) ?
Il nous faudrait des exemples de fichier d'entrées et la sortie attendue.
Je pense qu'il faudra passer pas un hashtable pour les performances.
Bonjour,
Merci pour ton retour et c'est la piste que je commence à percevoir mais étant débutant je ne sais pas faire.
J'ai fait deux fichiers pour exemple ci-joints :
* Un fichier Base qui peut contenir 12000000 de lignes et un autre "fichier à renseigner" avec 10000....30000 lignes.
A partir de l'info 1 renseignée dans chaque fichier je souhaite récupérer l'info 2 du fichier base afin de l'intégrer dans l'autre fichier "Fichier à renseigner"
j'ai utilisé une autre méthode mais je souhaite aller au bout de ma recherche. (j'ai intégré deux tables dans le logiciel dbeaver afin de faire une requête sql)
Merci d'avance.
Raidstorm14
Selon tes fichiers d'exemples, voici comment je procéderais
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 $file_base = "base.csv" $file_rens = "Fichier à renseigner.csv" $file_rens_out = "Fichier à renseigner_out.csv" $csv_base = Import-Csv -LiteralPath $file_base -Delimiter ";" -Encoding UTF8 $csv_rens = Import-Csv -LiteralPath $file_rens -Delimiter ";" -Encoding UTF8 $hash_base = @{} foreach($item in $csv_base) { if (!$hash_base.ContainsKey($item."Info 1")) { $hash_base.Add([string]$item."Info 1", [string]$item."Info 2") } } foreach($item in $csv_rens) { if ($hash_base.ContainsKey($item."Info 1")) { $item."Info 2" = $hash_base[$item."Info 1"] } } $csv_rens | Export-Csv -LiteralPath $file_rens_out -Delimiter ";" -Encoding UTF8 -NoTypeInformation -Force
PS : Je n'écrase pas le fichier pour les tests
PS : Bien sur tout ceci peut être condensé avec des |
Partager