Nebula-Spark-Writer写数据 ValueType is wrong

提问参考模版:

  • nebula 版本:1.1.0
  • Spark Writer 版本:v1.0
  • 部署方式:分布式
  • 问题的具体描述:
    按照官网的步骤编译了nebula-spark项目,导入maven。
    然后按照官网给的writer示例写了一下,报valueType worry的错

代码:

  val sparkSession = SparkSession
      .builder()
      .master("local[*]")
      .getOrCreate()

    val someData = Seq(
      Row("310115199309122211", "310115199309122211"),
      Row("310115199309122222", "310115199309122222"),
      Row("310115199309122233", "310115199309122233")
    )

    val someSchema = List(
      StructField("vid", StringType, true),
      StructField("certi_no", StringType, true)
    )

    val vertexDF = sparkSession.createDataFrame(
      sparkSession.sparkContext.parallelize(someData),
      StructType(someSchema)
    )


    // 写入点
    vertexDF.write
      .nebula("172.20.216.159:3699", "my_space_test", "30")
      .writeVertices("za_spark_person", "vid", "hash")

日志:

ERROR [pool-18-thread-1] - execute error: ValueType is wrong
ERROR [pool-19-thread-1] - execute error: ValueType is wrong
ERROR [pool-17-thread-1] - execute error: ValueType is wrong

在1.0的nebula插入数据,属性数据类型不对时会出现 valueType wrong的日志。
image

请贴一下 下面操作的结果,你插入数据的数据类型应该与NebulaGraph中的数据类型不匹配:

desc space my_space_test
desc tag za_spark_person

certi_no数据类型是String,数据需要有“”。
val someData = Seq(
Row(“310115199309122211”, "“310115199309122211"”),
Row(“310115199309122222”, "“310115199309122222"”),
Row(“310115199309122233”, "“310115199309122233"”)
)

解决了,谢谢:pray:
另外还有个问题,我看跑spark-nebula任务,日志显示已经插入成功了,但是我看运行状态一直没有结束,请问这个需要我再手动调方法停止吗?

在你程序最后要写
sparkSession.close()
sys.exit(0)

其实让用户自己保证String类型的数据自带双引号有点不友好,我们会在程序中加一层处理,感谢使用。 cc @steam

1 个赞