¿Cómo cargar el archivo CSV con Cypher en Java?
neo4j (2)
Soy nuevo en Cypher. Quiero cargar un csv usando cypher en java. Busqué en Google y encontré la siguiente pieza
LOAD CSV WITH HEADERS FROM "http://neo4j.com/docs/2.3.1/csv/import/movies.csv" AS csvLine
MERGE (country:Country { name: csvLine.country })
.....
Cómo usar esta consulta csv de carga en código java. Intenté algo como esto.
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import javax.naming.spi.DirStateFactory.Result;
import org.neo4j.cypher.javacompat.ExecutionEngine;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.kernel.impl.util.FileUtils;
public class test_new {
private static final String DB_PATH = "C:...../default.graphdb";
public static void main( final String[] args ) throws IOException
{
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
Transaction tx1 = db.beginTx();
try{
ExecutionEngine engine = new ExecutionEngine(db);
ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM "C:/..../Mock_data.csv" AS csvLine ");
tx1.success();
} finally {
tx1.close();
}
db.shutdown();
}
}
Pero no estoy seguro acerca de esta línea.
ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM "C:/..../Mock_data.csv" AS csvLine ");
Lanza un error de sintaxis.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error, insert ")" to complete MethodInvocation
Syntax error, insert ";" to complete LocalVariableDeclarationStatement
Yo no sé la construcción de la sintaxis yo mismo. ¿Cómo cargar la ruta csv?
¡Finalmente esto funcionó para mí!
ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM ''file:///Users/xxxxx/Documents/Txx.csv'' AS csvLine ")
Para corregir el error de sintaxis de Java, debe evitar las comillas dobles en el medio de la cadena; de lo contrario, parece que su cadena literal termina en la cita alrededor de la ruta:
"LOAD CSV WITH HEADERS FROM /"C:/..../Mock_data.csv/" AS csvLine "