Вы можете использовать Hadoop , но для такой простой обработки вы потратили больше времени на разжатие и разделение ввода, чем вы могли бы сэкономить, если сможете параллельно выполнять поиск. Простой zgrep
выполнил бы вашу задачу за меньшее время.
Что-то вдоль линий этого:
zegrep $'name.*@en\t\\.$' freebase-public/rdf/freebase-rdf-2013-09-15-00-00.gz | cut -f 1,3 | gzip > freebase-names-20130915.txt.gz
даст вам сжатый файл два столбца Freebase MIDs и их английских названий. Вероятно, вы захотите сделать grep более конкретным, чтобы избежать ложных срабатываний (и проверить его, чего я еще не сделал). Этот файл сжат более чем на 20GB, поэтому потребуется некоторое время, но меньше времени, чем даже приступить к подготовке задания Hadoop.
Если вы хотите сделать дополнительную фильтрацию, такую как только объекты выделения с типом/общей/темы, вы можете обнаружить, что вам нужно перейти на язык сценариев, такой как Python, чтобы иметь возможность смотреть и оценивать по нескольким строкам в один раз.
Данные 20GB + сжатые и что-то вроде 250GB несжатого. Создание многотысячной базы данных для запуска простого простого запроса не кажется очень эффективным. –