Datastax 5.1 Graph loader — загрузка однородных файлов из нескольких подкаталогов

Загрузчик Graph может загружать файлы из явно определенного каталога, но в настоящее время не имеет встроенного способа автоматической рекурсивной загрузки унифицированных файлов из нескольких подкаталогов.


person RodogInfinite    schedule 03.05.2017    source источник


Ответы (1)


Я не смог найти никаких примеров для загрузки унифицированных файлов из нескольких подкаталогов, поэтому, разобравшись с этим, я подумал, что было бы полезно опубликовать это здесь, чтобы помочь кому-то еще в будущем. У кого-нибудь есть более крутой способ?

//configure graphloader
config dryrun: false, load_vertex_threads: 2, load_edge_threads: 3,
read_threads: 1, preparation: true, create_schema: false,
abort_on_prep_errors: true

import java.io.File as javaFile; //this must be aliased so as to not conflict with graphloader's File.directory()

inputBaseDir = /path/to/base/dir
//base directory has many subdirectories that have many uniform files to load

//create a list of the subdirectory paths
def list = []
new javaFile(inputBaseDir).eachDir() { dir ->
    list << dir.getAbsolutePath()
}

//loop through the list of subdirectory paths

for (item in list){
    def fileBuilder = File.directory(item)
    def theData = fileBuilder.map{
        it["specificDataLabel"] = it["data"]["specificData"][0];
        it["otherSpecificDataLabel"] = it["data"]["otherSpecificData"][0];
        it.remove("data")
        it
    }

    load(theData).asVertices {
        label "theLabel"
        key "specificDataLabel"
        vertexProperty "otherSpecificDataLabel",{
            value "metaPropertyLabel"
            value "otherMetaPropertyLabel"
        }
    }
person RodogInfinite    schedule 03.05.2017