Я использую следующий скрипт в gremlin для создания графика с помощью файла csv:
graph = TinkerGraph.open()
graph.createIndex('userId', Vertex.class) //(1)
g = graph.traversal()
getOrCreate = { id ->
g.V().has('userId', id).tryNext().orElseGet{ g.addV('userId', id).next() }
}
new File('wiki-Vote.txt').eachLine
{
if (!it.startsWith("#")){
l->p=it.split(',').collect(getOrCreate) //(2)**
(fromVertex, toVertex) = (s[0],s[1])
fromVertex.addEdge('votesFor', toVertex) } }
как мы видим в этом запросе, см. строку
l>p=it.split(',').collect(getOrCreate)
в этой строке строки файла CSV разделяются на основе разделителя "", затем вызывается функция метода getOrCreate для применения индексации к собранным вершинам.
если я дам g.V (). count (), он подсчитывает все значения во всех столбцах. но мне нужно добавить только выбранные столбцы в вершину.
что мне нужно: я хочу применить метод getOrCreate только к выбранным столбцам вместо применения ко всем столбцам
например: если CSV-файл имеет имя, возраст, идентификатор, помечает столбцы. Я хочу применить метод getOrCreate только к столбцам имени и возраста и добавить их в вершину. если я дам g.V (). count () ... он должен дать мне только имя и возраст