Spark Writer
- HDFS,包括 Parquet、JSON、ORC 和 CSV 格式的文件
- HIVE
Spark Writer 支持并发导入多个 tag、edge,支持不同 tag/edge 配置不同的数据仓库。
注意: 为确保 Nebula Graph Spark Writer 正常使用,请确保你的机器已安装:
- Spark 2.0 及以上版本
- Hive 2.3 及以上版本
- Hadoop 2.0 及以上版本
或者直接下载
从云存储 OSS 下载
基本流程分为以下几步:
- 编写数据文件
- 编写输入源映射文件
- 导入数据
构图请参考中的示例构图。
注意:请先在 Nebula Graph 中完成构图(创建图空间和定义图数据 Schema),再通过本工具向 Nebula Graph 中写入数据。
数据示例
点
顶点数据文件由一行一行的数据组成,文件中每一行表示一个点和它的属性。一般来说,第一列为点的 ID ——此列的名称将在后文的映射文件中指定,其他列为点的属性。
- player 顶点数据
{"id":100,"name":"Tim Duncan","age":42}
{"id":101,"name":"Tony Parker","age":36}
{"id":102,"name":"LaMarcus Aldridge","age":33}
边
边数据文件由一行一行的数据组成,文件中每一行表示一条边和它的属性。一般来说,第一列为起点 ID,第二列为终点 ID,起点 ID 列及终点 ID 列会在映射文件中指定。其他列为边属性。下面以 JSON 格式为例进行说明。
- 无 rank 的边
- 有 rank 的边
{"source":100,"target":101,"likeness":95,"ranking":2}
{"source":101,"target":100,"likeness":95,"ranking":1}
{"source":101,"target":102,"likeness":90,"ranking":3}
含有地理位置 Geo 的数据
Spark Writer 支持 Geo 数据导入,Geo 数据用 latitude 与 longitude 字段描述经纬度,数据类型为 double。
{"latitude":30.2822095,"longitude":120.0298785,"target":0,"dp_poi_name":"0"}
{"latitude":30.2813834,"longitude":120.0208692,"target":1,"dp_poi_name":"1"}
{"latitude":30.2807347,"longitude":120.0181162,"target":2,"dp_poi_name":"2"}
{"latitude":30.2812694,"longitude":120.0164896,"target":3,"dp_poi_name":"3"}
数据源文件
目前 Spark Writer 支持的数据源有:
- HDFS
- HIVE
HDFS 文件
支持的文件格式包括:
- Parquet
- JSON
- CSV
- ORC
Player 的 Parquet 示例如下:
JSON 示例如下:
{"id":100,"name":"Tim Duncan","age":42}
{"id":101,"name":"Tony Parker","age":36}
CSV 示例如下:
age,id,name
36,101,Tony Parker
数据库
Spark Writer 支持以数据库作为数据源,目前支持 HIVE。
Player 表结构如下:
输入源的映射文件示例:
Spark 配置信息
下表给出了一些示例,所有可配置项请见 Spark Available Properties。
Nebula Graph 配置信息
tags 和 edges 映射信息
tag 和 edge 映射的选项比较类似。下面先介绍相同的选项,再分别介绍 tag 映射
和 edge 映射
的特有选项。
tag 映射的特有选项
vertex
指定某一列作为点的 ID 列,必填
edge 映射的特有选项
source
指定输入源某一列作为源点的 ID 列,必填target
指定某一列作为目标点的 ID 列,必填- 当插入边有 ranking 值,
ranking
指定某一列作为边 ranking 列,选填
数据源映射
- HDFS Parquet 文件
type
指定输入源类型,当为 parquet 时大小写不敏感,必填- 指定 HDFS 文件或目录的路径,必须是 HDFS 的绝对路径,必填
- HDFS JSON 文件
type
指定输入源类型,当为 JSON 时大小写不敏感,必填path
指定 HDFS 文件或目录的路径,必须是 HDFS 的绝对路径,必填
- HIVE ORC 文件
type
指定输入源类型,当为 ORC时大小写不敏感,必填path
指定 HDFS 文件或目录的路径,必须是 HDFS 的绝对路径,必填
- HIVE CSV 文件
type
指定输入源类型,当为 CSV 时大小写不敏感,必填path
指定 HDFS 文件或目录的路径,必须是 HDFS 的绝对路径,必填
- HIVE
type
指定输入源类型,当为 HIVE 时大小写不敏感,必填exec
指定 HIVE 执行查询的语句,必填
执行命令导入数据
导入数据命令:
bin/spark-submit \
--class com.vesoft.nebula.tools.generator.v2.SparkClientGenerator \
${SPARK_WRITER_JAR_PACKAGE} -c conf/test.conf -h -d
参数说明: