微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TigerGraph - 通过 Spark 将数据加载到用户定义的元组

如何解决TigerGraph - 通过 Spark 将数据加载到用户定义的元组

谁能帮我弄清楚如何将数据加载到在 Tigergraph DB 中创建的元组中?我创建了以下元组,我正在尝试使用 Spark 从文件加载数据。

图形名称MyGraph 元组名称MyTuple

MyTuple 的属性ID String(50),Datee Datetime

元组 MyTuple 作为边属性被引用到 MyGraph 的边 (ed_newEdge) 中。寻求帮助以了解如何使用 Spark 将数据加载到 MyGraph 中的元组中。

解决方法

您可以使用tigergraph jdbc 驱动程序向元组插入数据。你可以找到一个例子 here https://github.com/tigergraph/ecosys/blob/master/tools/etl/tg-jdbc-driver/tg-jdbc-examples/src/main/java/com/tigergraph/jdbc/UpsertQuery.java

按照上面的代码创建连接后,您可以使用下面的代码片段

try (java.sql.Statement stmt = con.createStatement()) {
      query = "INSERT INTO edge ed_newEdge(Vertex1,Vertex2) VALUES(MyTuple("1d123","2011-02-03 01:02:03"))";
      stmt.addBatch(query);}

或者,您可以在 SPARK 上处理您的数据并在 Parquet 或 csv 文件中序列化您的数据。然后您可以创建一个 GSQL 加载作业来读取该文件并将值插入到您的元组中。 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/creating-a-loading-job#loading-a-user-defined-type-udt-attribute

TYPEDEF TUPLE <f1 INT (1),f2 UINT,f3 STRING (10),f4 DOUBLE > myTuple   # define a UDT
CREATE VERTEX v_udt  (id STRING PRIMARY KEY,att_udt myTuple)
CREATE GRAPH test_graph (v_udt)
CREATE LOADING JOB load_udt FOR GRAPH test_graph {
    DEFINE FILENAME f;
    LOAD f TO VERTEX v_udt VALUES ($0,myTuple($1,$2,$3,$4) ); 
    # $1 is loaded as f1,$2 is loaded as f2,and so on
}
RUN LOADING JOB load_udt USING f="./udt.csv"

现在您可以使用休息请求 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/running-a-loading-job

调用上面创建的加载作业

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。