回答

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" 
     } 
    }