Итак, скажем, у меня есть 5 файлов csv (созданных в порядке от 1 до 5) с 8-10 столбцами каждый. Каждый файл имеет около 300 000 (указать или взять) строки.Самый быстрый способ объединить несколько файлов csv на основе значения 1-го столбца
Каждый файл должен соответствовать значению (уникальному) из первого столбца в каждом файле, а затем объединять записи/названия столбцов. Если файлы с 2 по 5 не имеют значения из столбца 1, найденного в файле1 (из столбца 1), вся строка должна быть исключена из слияния.
Пример ниже двух (из 5) CSV файлов ...
File1
ColumnTitle1,ColumnTitle2,ColumnTitle3,ColumnTitle4,ColumnTitle5,ColumnTitle6,ColumnTitle7,ColumnTitle8,ColumnTitle9,ColumnTitle10
Column1Value3145,Column2Value1,Column3Value1,Column4Value1,Column5Value1,Column6Value1,Column7Valu1,Column8Value1,Column9Value1,Column10Value1
Column1Value573,Column2Value2,Column3Value2,Column4Value2,Column5Value2,Column6Value2,Column7Valu2,Column8Value2,Column9Value2,Column10Value2
Column1Value62317,Column2Value3,Column3Value3,Column4Value3,Column5Value3,Column6Value3,Column7Valu3,Column8Value3,Column9Value3,Column10Value3
Column1Value93,Column2Value4,Column3Value4,Column4Value4,Column5Value4,Column6Value4,Column7Valu4,Column8Value4,Column9Value4,Column10Value4
File2:
ColumnTitle1,ColumnTitle11,ColumnTitle12,ColumnTitle13,ColumnTitle14,ColumnTitle15,ColumnTitle16,ColumnTitle17,ColumnTitle18
Column1Value752789,Column11Value1,Column12Value1,Column13Value1,Column14Value1,Column15Value1,Column16Value1,Column17Value1,Column18Value1
Column1Value3145,Column11Value2,Column12Value2,Column13Value2,Column14Value2,Column15Value2,Column16Value2,Column17Value2,Column18Value2
Column1Value573,Column11Value3,Column12Value3,Column13Value3,Column14Value3,Column15Value3,Column16Value3,Column17Value3,Column18Value3
Column1Value832657,Column11Value4,Column12Value4,Column13Value4,Column14Value4,Column15Value4,Column16Value4,Column17Value4,Column18Value4
Column1Value62317,Column11Value5,Column12Value5,Column13Value5,Column14Value5,Column15Value5,Column16Value5,Column17Value5,Column18Value5
Column1Value93,Column11Value6,Column12Value6,Column13Value6,Column14Value6,Column15Value6,Column16Value6,Column17Value6,Column18Value6
Column1Value423568,Column11Value7,Column12Value7,Column13Value7,Column14Value7,Column15Value7,Column16Value7,Column17Value7,Column18Value7
Если бы я просто объединить эти два файла (2 из 5) это выглядело бы примерно так:
ColumnTitle1,ColumnTitle2,ColumnTitle3,ColumnTitle4,ColumnTitle5,ColumnTitle6,ColumnTitle7,ColumnTitle8,ColumnTitle9,ColumnTitle10,ColumnTitle11,ColumnTitle12,ColumnTitle13,ColumnTitle14,ColumnTitle15,ColumnTitle16,ColumnTitle17,ColumnTitle18
Column1Value3145,Column2Value1,Column3Value1,Column4Value1,Column5Value1,Column6Value1,Column7Valu1,Column8Value1,Column9Value1,Column10Value1,Column11Value2,Column12Value2,Column13Value2,Column14Value2,Column15Value2,Column16Value2,Column17Value2,Column18Value2
Column1Value573,Column2Value2,Column3Value2,Column4Value2,Column5Value2,Column6Value2,Column7Valu2,Column8Value2,Column9Value2,Column10Value2,Column11Value3,Column12Value3,Column13Value3,Column14Value3,Column15Value3,Column16Value3,Column17Value3,Column18Value3
Column1Value62317,Column2Value3,Column3Value3,Column4Value3,Column5Value3,Column6Value3,Column7Valu3,Column8Value3,Column9Value3,Column10Value3,Column11Value5,Column12Value5,Column13Value5,Column14Value5,Column15Value5,Column16Value5,Column17Value5,Column18Value5
Column1Value93,Column2Value4,Column3Value4,Column4Value4,Column5Value4,Column6Value4,Column7Valu4,Column8Value4,Column9Value4,Column10Value4,Column11Value6,Column12Value6,Column13Value6,Column14Value6,Column15Value6,Column16Value6,Column17Value6,Column18Value6
Добавление файлов 3 - 5 увеличит столбцы примерно до 50 (дайте или возьмите).
Я не уверен, если это самый быстрый способ, но здесь есть логика, я имею в виду (который я не уверен, как это сделать с помощью PowerShell):
- Go один файл в то время, чтобы соответствовать и сливаться с файлом один
- магазина file1 в переменном
- магазин file2 в переменной
- Loop через линию в file1
- \\\\ Где значение1 в column1 из file1 найдены в column1 от file2
- \\\\ добавить строку из file2 к строке в файла1
- \\\\ удалить строку из файл2 (уменьшить поиск во время следующей итерации цикла)
- четких переменным, содержащего файл2
- магазина следующего файл в переменная
- повторить цикл поиска и добавления итераций
и где ваш код? – Avshalom
Вы спрашиваете о слиянии или объединении объектов? –
Возможно, вы еще не знаете, как это сделать в PowerShell, но быстрый поиск Google для каждого шага в вашем рецепте будет долгим. Ты на правильном пути. Мы не здесь, чтобы делать вашу работу за вас, но когда у вас есть скрипт, который сломан, мы с радостью поможем вам исправить эту проблему. Вы не научитесь, не пытаясь и не потерпите неудачу. :-) –