【问题标题】:How do I load a csv file into MarkLogic as one JSON file and not individual files?如何将 csv 文件作为一个 JSON 文件而不是单个文件加载到 MarkLogic 中?
【发布时间】:2019-07-29 11:25:58
【问题描述】:

我有一个带有 | 的 CSV 文件分隔符。我想使用 mlcp 将其加载到 MarkLogic 中,并将所有数据加载为一个 JSON 文档而不是多个 JSON(每行一个 JSON)。

CSV:

Name | age | gender
Steve | 30 | M
Rogers | 28 | M

JSON 期望:

{
  "Name":"Steve",
  "age":30,
  "gender":"M"
},
{
  "Name":"Rogers",
  "age":30,
  "gender":"M"
}

【问题讨论】:

    标签: json shell csv marklogic mlcp


    【解决方案1】:

    在大多数情况下,如果每一行都是一个单独的文档,而不是将一个表的所有行放在一个文档中,MarkLogic 效果最好。

    通过在文档上设置一个集合,可以很容易地从读取的行文档中重建一个表。

    您在获取行子集方面具有更大的灵活性。

    协调查询(例如“查找名称为“Rogers”且年龄为“30”的所有行文档)效率更高,因为您不必从大型文档中投影行并且可以从索引中解析出来而不会出现误报(例如,其中一行中的属性名称为“Rogers”而另一行中的属性名称为“30”的文档)。

    简而言之,考虑该要求是否会被证明是长期的最佳方法。

    综上所述,我相信像 jackson-csv 这样的客户端库可以将 CSV 转换为一个大型 JSON 文档,然后您可以使用 mlcp 或 MarkLogic Java API 编写该文档。

    但是,再一次,这种方法很可能会在未来被证明是有问题的。

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 2019-08-25
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 2014-05-17
      相关资源
      最近更新 更多