6 package com.vesoft.nebula.client.storage.processor;
8 import com.google.common.collect.Maps;
9 import com.vesoft.nebula.DataSet;
10 import com.vesoft.nebula.Row;
11 import com.vesoft.nebula.Value;
12 import com.vesoft.nebula.client.graph.data.ValueWrapper;
13 import com.vesoft.nebula.client.storage.data.VertexRow;
14 import com.vesoft.nebula.client.storage.data.VertexTableRow;
15 import java.util.ArrayList;
16 import java.util.List;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
22 private static final Logger LOGGER = LoggerFactory.getLogger(
VertexProcessor.class);
24 public static Map<ValueWrapper, VertexRow> constructVertexRow(List<DataSet> dataSets,
26 Map<ValueWrapper, VertexRow> vidVertices = Maps.newHashMap();
27 for (DataSet dataSet : dataSets) {
28 List<Row> rows = dataSet.getRows();
29 List<byte[]> colNames = dataSet.getColumn_names();
30 for (Row row : rows) {
31 List<Value> values = row.getValues();
32 if (values.size() < 1) {
33 LOGGER.error(
"values size error for row: " + row.toString());
36 Map<String, ValueWrapper> props = Maps.newHashMap();
37 for (
int i = 0; i < values.size(); i++) {
38 String colName =
new String(colNames.get(i));
39 if (!colName.contains(
".")) {
42 if (
"_vid".equals(colName.split(
"\\.")[1])) {
45 props.put(colName.split(
"\\.")[1],
50 vidVertices.put(
new ValueWrapper(vid, decodeType), vertexRow);
57 public static List<VertexTableRow> constructVertexTableRow(List<DataSet> dataSets,
59 List<VertexTableRow> vertexRows =
new ArrayList<>();
60 for (DataSet dataSet : dataSets) {
61 List<Row> rows = dataSet.getRows();
62 for (Row row : rows) {
63 List<Value> values = row.getValues();
64 List<ValueWrapper> props =
new ArrayList<>();
66 for (
int i = 1; i < values.size(); i++) {