Intereting Posts
Руководство для программистов Unix относится к Linux? При установке Linux какие факторы влияют на выбор языка для сервера? Определите конкретный TTL для каждого интерфейса fdisk зависает на «Синхронизация диска» при изменении размера исходного изображения QEMU регулярное выражение для извлечения информации в сценарии оболочки Отключить устройство с libinput ps aux: zero VSZ Извлечь сжатый файл по его заголовку, поскольку он передается по каналу из stdout (локально или из удаленного места)? Балансировка нагрузки и резервирование на FreeBSD Почему mutt продолжает просить имя пользователя и пароль imap? Как удалить диск из группы с чередующимися томами? Как установить клиент OpenVPN на RHEL 7.3? Измените предпочтительный сетевой адаптер в маршрутах по умолчанию Arch – Как установить пакет, сделанный в чистом chroot? Воспроизводить произвольный звук PCM через динамик ПК?

Слияние большого набора данных самым быстрым способом

У меня большой набор данных ~ 100 ГБ с меньшими файлами csv ~ 100 000. Я хочу объединить все CSV-файлы вместе самым быстрым способом. Файлы находятся в двух разных папках.

  1. Кто-то предложил мне создать два файла с именами файлов из обеих папок и с использованием имени файла, итерации в каталоге для добавления выходных файлов вместо использования glob ls * . Как я могу добиться этого с помощью Linux. Я довольно новичок в этом, если кто-то может мне помочь, я был бы признателен.
  2. Если какой-либо другой способ, учитывая набор данных, добиться результата

Попробуйте что-то вроде этого:

 find /path/to/dir1 /path/to/dir2 -type f -name '*.csv' -exec cat {} + >/path/to/merged.csv 

Обязательно не помещайте объединенный файл в любой из входных каталогов. 🙂

Если вы правильно поняли, вы хотите создать один (100 ГБ размер?) Файл из всех ваших файлов. В этом случае кошка может сделать трюк:

 cat foo1 foo2 bar1 bar2 > newfile 

или в вашем случае

 cat folder1/* folder2/* > newfile 

который возьмет все файлы из folder1 и folder2 и объединит их (как текст) в новый файл. обратите внимание, что кошка просто добавляет файлы в конец (например, добавляет строки)

Тем не менее, это сохранит старые файлы, и вам понадобится в два раза больше места, поэтому вы можете также обрабатывать их отдельно:

 for f in folder1/* folder2/* ; do cat $f >> newfile && rm $f done 

таким образом каждый файл добавляется, а затем удаляется.

Это то, что вы искали?