【问题标题】:Extract Only Values as csv format in gremlin在 gremlin 中仅将值提取为 csv 格式
【发布时间】:2021-01-13 09:36:54
【问题描述】:

我正在尝试从 Graph 数据库中提取值。我正在尝试使用以下 gremlin 控制台命令,但它返回键值对,我们可以将其转换为列表。

%%gremlin

g.V().hasLabel('airport').limit(2).project('id','label','region','country').by(id()).by(label()).by('region').by('country').fold()

输出

[{'id': '1', 'label': 'airport', 'region': 'US-GA', 'country': 'US'}, {'id': '2', 'label': 'airport', 'region': 'US-AK', 'country': 'US'}]

预期输出:

'1', 'airport', 'US-GA', 'US'
'2', 'airport', 'US-AK', 'US'

or

[['1','airport','US-GA','US'], ['2','airport', 'US-AK','US']]

【问题讨论】:

    标签: python graph neo4j gremlin amazon-neptune


    【解决方案1】:

    您可以使用values,而不是使用project。像 projectvalueMap 这样的步骤返回一个键:值映射,而 values 的结果中不包含键。

    gremlin> g.V().
               hasLabel('airport').
               limit(2).
               local(union(id(),label(),values('region','country')).fold())
    
    ==>[1,airport,US,US-GA]
    ==>[2,airport,US,US-AK]
    

    作为替代方案,您可以在当前查询中添加 select(values),我认为我更喜欢这样做,因为它避免了需要 localunion 步骤。

    gremlin> g.V().
               hasLabel('airport').
               limit(2).
               project('id','label','region','country').
                 by(id()).
                 by(label()).
                 by('region').by('country').
               select(values).
               fold()
    
    ==>[[1,airport,US-GA,US],[2,airport,US-AK,US]]
    

    【讨论】:

    • 感谢 Kelvin,我想我尝试了 values 步骤。但是顺序不是我在值步骤中提到的。正如您在上面的结果中看到的,地区和国家被交换了。此外,为了方便写入其他数据库,我希望将其作为一个列表,每一行都应该是内部列表,以便我可以写入 pandas 数据框。
    • 我添加了第二个示例,它采用您的原始查询并仅从地图中提取值。不保证返回结果的顺序。如果您需要特定订单,最好在查询中添加order 步骤。
    • 它在 gremlin 控制台中运行良好。这在 Glue 执行中是否不同,我收到 Failed message Type Error: id() 只接受一个参数(给定 0 个参数)。
    • 如果您使用 Python 来避免名称冲突,您必须使用 id_()
    • 不走运,当我这样做时,它说 id_ 未定义。我的代码是 "gV().hasLabel('airport').limit(2).project('id','label','region','country').by(id_()).by(label( )).by('region').by('country').select(values).fold()"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多