Я использую Spark + Hive для построения графиков и взаимосвязей, а также для экспорта простых файлов OPV / OPE в HDFS, по одному OPV / OPE CSV на редуктор.Вся наша база данных графиков готова к загрузке в OPG / PGX для аналитики, которая работает как чудо.
Теперь мы хотим загрузить эти вершины / ребра в Oracle Property Graph.
Я выбросил имена файлов из hdfs следующим образом:
$ hadoop fs -find '/user/felipeferreira/dadossinapse/ops/*.opv/*.csv' | xargs -I{} echo 'hdfs://'{} > opvs.lst
$ hadoop fs -find '/user/felipeferreira/dadossinapse/ops/*.ope/*.csv' | xargs -I{} echo 'hdfs://'{} > opes.lst
И я экспериментирую с отличной оболочкой с некоторыми проблемами и сомнениями:
opvs = new File('opvs.lst') as String[]
opes = new File('opes.lst') as String[]
opgdl.loadData(opg, opvs, opes, 72)
Этоне работает "из коробки", я получаю ошибки, такие как
java.lang.IllegalArgumentException: loadData: part-00000-f97f1abf-5f69-479a-baee-ce0a7bcaa86c-c000.csv flat file does not exist
Я справлюсь с этим с помощью подхода InputStream, доступного в интерфейсе loadData, надеюсь, что это решит эту проблему, но у меня есть некоторые вопросы / предложения:
- Поддерживает ли loadData vfs, чтобы я мог загружать файлы 'hdfs: // ...' напрямую?
- Было бы неплохо иметь синтаксис glob в именах файлов, поэтому мыможет сделать что-то вроде:
opgdl.loadData(opg, 'hdfs:///user/felipeferreira/opvs/**/*.csv' ...
Заранее спасибо!