python调用nebula接口读取数据怎么转换成dataframe格式

nebula3.4.0 集群3台服务器
python读取数据以后怎么转换成dataframe格式?
求助各位大神

def result_to_df(result: ResultSet) -> pd.DataFrame:
    """
    build list for each column, and transform to dataframe
    """
    assert result.is_succeeded()
    columns = result.keys()
    d: Dict[str, list] = {}
    for col_num in range(result.col_size()):
        col_name = columns[col_num]
        col_list = result.column_values(col_name)
        d[col_name] = [x.cast() for x in col_list]
    return pd.DataFrame.from_dict(d, columns=columns)

用ResultSet的result_to_df并不奏效~

emmm,你可以吧你的截图打个马赛克么,水印上有你的个人信息。等你处理了图片,我再给你把问题放出来。

可以参考:

那个例子的错误我 fix 了哈参考:

我把敏感的去掉了 @steam

转dataframe成功了,感谢@steam @wey
另外想问下用pyspark调用spark-connector的jar包,我这样写

df = spark.read.format(
“com.vesoft.nebula.connector.NebulaDataSource”).option(
“type”, “vertex”).option(
“spaceName”, “basketballplayer”).option(
“label”, “player”).option(
“returnCols”, “name,age”).option(
“metaAddress”, “metad0:9559”).option(
“partitionNumber”, 1).load()
报错找不到依赖,


请问我的jar包路径这样写可以吗,如果用服务器上的某个路径,应该在jupyter部署的服务器上放置jar包吗?有点弄不清楚了

代码可以参考 https://github.com/wey-gu/nebulagraph-ai

可以用不同模式运行:

  • Spark 可以用 notebook 模式运行
  • 你的 pyspark 代码和 jar 包可以一起 spark submit 提交

@steam 去掉隐藏吧

https://github.com/wey-gu/nebula-up/blob/058faed7fef1df959de13977c9f3aadac8532a2a/all-in-one.sh#LL504C34

pyspark 的方式我在 nebula-up playground 里也是这么弄得,是ok的不知道你的看你就是相对路径和我的有差别,给绝对路径呢

1.请问在ng_ai里面spark引擎的示例没有指定图空间,这个是有什么使用的先决条件吗?
2.执行示例中:

from ng_ai import NebulaReader
reader = NebulaReader(engine=“spark”)
query = “”"
MATCH ()-[e:follow]->()
RETURN e LIMIT 100000
“”"
reader.query(query=query, edge=“follow”, props=“degree”)
df = reader.read() # this will take some time
df.show(2)
报错找不到connector

是我的使用有什么问题吗

是要给配置的,示例里加载了默认配置

  1. 报错找不到 connector,这个可以参考一下 docker extension 里环境和 nebula-up 环境上的 jar 包依赖配置?

请问非docker部署还可以使用ng_ai吗

应该是没有限制的哈

1.请问在哪里加载默认配置,有具体的操作步骤参考吗
2.docker extension和nebula-up的配置在哪里可以看到
对这一块内容不太了解,非常感谢

  1. NebulaGraphConfig 这里初始化的时候给 space=“xxx” 就行 nebulagraph-ai/ng_ai/config.py at main · wey-gu/nebulagraph-ai · GitHub ,感谢提醒,例子、文档里这里我省略了,回头加上

  2. Nebulagraph Artificial Intelligence Suite - siwei.io 这里有安装 docker extension 的部分 docker 文件在这里 nebula-up/spark/Dockerfile-jupyter at main · wey-gu/nebula-up · GitHub

df.write.format(“com.vesoft.nebula.connector.NebulaDataSource”).option(
“type”, “vertex”).option(
“spaceName”, “basketballplayer”).option(
“label”, “player”).option(
“vidPolicy”, “”).option(
“vertexField”, “_vertexId”).option(
“batch”, 1).option(
“metaAddress”, “metad0:9559”).option(
“graphAddress”, “graphd1:9669”).option(
“passwd”, “nebula”).option(
“user”, “root”).option(
“operateType”, “write”).save()

我加载到了jar包,能够读到vertex信息,但是写入vertex报错,


另外,读取edge:

df.write.format(“com.vesoft.nebula.connector.NebulaDataSource”)
.option(“srcPolicy”, “”)
.option(“dstPolicy”, “”)
.option(“metaAddress”, “metad0:9559”)
.option(“graphAddress”, “graphd:9669”)
.option(“user”, “root”)
.option(“passwd”, “nebula”)
.option(“type”, “edge”)
.option(“spaceName”, “basketballplayer”)
.option(“label”, “follow”)
.option(“returnCols”, “degree”)
.option(“srcVertexField”, “srcid”)
.option(“dstVertexField”, “dstid”)
.option(“randkField”, “”)
.option(“batch”, 100)
.option(“operateType”, “read”).save()
报错
image
麻烦帮忙看下是我的参数有问题吗~

写入似乎 SaveMode 配置的默认值 ErrorIfExists 是不支持的,这里没有处理好,你能不能帮我测试一下加这个

SaveMode append

或者
saveMode append

如果 work 来提一个 PR fix 一下 readme 里的 pyspark 写入例子哈?

cc @nicole 这里 SaveMode 默认值是不是可以处理成非 ErrorIfExists ?

我这里 spark 2.4 上的读例子是这样的,你这个是写入?

df = spark.read.format(
        "com.vesoft.nebula.connector.NebulaDataSource").option(
            "type", "edge").option(
            "spaceName", "basketballplayer").option(
            "label", "follow").option(
            "returnCols", "degree").option(
            "metaAddress", "metad0:9559").option(
            "partitionNumber", 3).load()

试了两个,都没有奏效

报错都是什么,我最近还没试过 PySpark 3.0

写入报错是这样:

写入似乎 SaveMode 配置的默认值 ErrorIfExists 是不支持的,这里没有处理好,你能不能帮我测试一下加这个
SaveMode append
或者
saveMode append

这两个加上也在报错