Прежде всего, я полностью разделяю точку зрения Тома и его предложение. Я часто использую инструменты командной строки UNIX для извлечения «интересных» фрагментов данных из дампа данных Freebase.
Однако альтернативой может быть локальная загрузка данных Freebase в систему хранения 'graph' и использование API и / или языка запросов, доступных в этой системе, для взаимодействия с данными для дальнейшей обработки.
Я использую RDF, поскольку модель данных очень похожа, и очень просто преобразовать дамп данных Freebase в RDF (см .: https://github.com/castagna/freebase2rdf). Затем я загружаю его в хранилище TDB Apache Jena (http://incubator.apache.org/jena/documentation/tdb/) и используйте Jena API или SPARQL для дальнейшей обработки.
Другим разумным и масштабируемым подходом было бы реализовать то, что вам нужно делать в MapReduce, но это имеет смысл, только если объем вашей обработки затрагивает большую часть данных Freebase, и это не так тривиально, как подсчет строк. Это дороже, чем использование вашей собственной машины, вам нужен кластер Hadoop или вам нужно использовать Amazon EMR. (Вероятно, мне следует написать версию freebase2rdf для MapReduce; -))
Мои 2 цента.