小编jq1*_*727的帖子

使用多线程加载大型 JSON 文件/

我正在尝试加载一个大的 3 GB JSON 文件。目前,使用 JQ 实用程序,我可以在近 40 分钟内加载整个文件。现在,我想知道如何在 JQ 中使用并行/多线程方法以在更短的时间内完成该过程。我正在使用 v1.5

使用的命令:

JQ.exe -r -s "map(.\"results\" | map({\"ID\": (((.\"body\"?.\"party\"?.\"xrefs\"?.\"xref\"//[] | map(select(ID))[]?.\"id\"?))//null), \"Name\": (((.\"body\"?.\"party\"?.\"general-info\"?.\"full-name\"?))//null)} | [(.\"ID\"//\"\"|tostring), (.\"Name\"//\"\"|tostring)])) | add[] | join(\"~\")" "\C:\InputFile.txt" >"\C:\OutputFile.txt"
Run Code Online (Sandbox Code Playgroud)

我的数据:

{
  "results": [
    {
      "_id": "0000001",
      "body": {
        "party": {
          "related-parties": {},
          "general-info": {
            "last-update-ts": "2011-02-14T08:21:51.000-05:00",
            "full-name": "Ibercaja Gestion SGIIC SAPensiones Nuevas Oportunidades",
            "status": "ACTIVE",
            "last-update-user": "TS42922",
            "create-date": "2011-02-14T08:21:51.000-05:00",
            "classifications": {
              "classification": [
                {
                  "code": "PENS"
                }
              ]
            }
          },
          "xrefs": {
            "xref": [
              {
                "type": …
Run Code Online (Sandbox Code Playgroud)

json jq

5
推荐指数
1
解决办法
1894
查看次数

Cassandra 数据类型中的 INT 和 VARINT 有什么区别?

有人可以解释一下 Cassandra 中 INT 和 VARINT 数据类型之间的区别吗?什么时候应该使用 VARINT,它的优点是什么?

types cassandra

5
推荐指数
2
解决办法
3181
查看次数

如何通过ZIO环境在ZIO任务之间共享ZIO队列

我对Scala和ZIO有点陌生,遇到了一个奇怪的难题。

我想设置一个包含ZIO队列的ZIO环境,以后offertake从此共享队列中使用不同的ZIO任务。

我试图这样定义我的环境

    trait MainEnv extends Console with Clock
    {
      val mainQueue = Queue.unbounded[String]
    }
Run Code Online (Sandbox Code Playgroud)

并从这样的单独任务访问队列

    for {
      env      <- ZIO.environment[MainEnv]
      queue    <- env.mainQueue
      ...
Run Code Online (Sandbox Code Playgroud)

但是在测试中,我观察到每个单独的任务都有一个单独的Queue实例。
寻找签名unbounded

  def unbounded[A]: UIO[Queue[A]]
Run Code Online (Sandbox Code Playgroud)

我观察到它并不会立即返回一个队列,而是返回一个返回队列的效果,因此虽然观察到的行为是有道理的,但这根本不是我所希望的,并且我没有看到一种清晰的方式来获得行为我想要。

我们将不胜感激关于如何实现我的目标的任何建议,这些目标是通过环境中存储的共享队列来设置不同的任务进行通信。


供参考的是我的代码和输出。

样本执行

bash-3.2$ sbt run
[info] Loading project definition from /private/tmp/env-q/project
[info] Loading settings for project root from build.sbt ...
[info] Set current project to example (in build file:/private/tmp/env-q/)
[info] Compiling 1 Scala source to /private/tmp/env-q/target/scala-2.12/classes ...
[info] Done compiling.
[info] Packaging /private/tmp/env-q/target/scala-2.12/example_2.12-0.0.1-SNAPSHOT.jar …
Run Code Online (Sandbox Code Playgroud)

scala zio

5
推荐指数
1
解决办法
131
查看次数

与 JQ 的价值图

我有一个很大的 JSON 文件,我想在其中基于某种映射来转换一些值。

我拥有的数据如下所示:

[
    {"id":1, "value":"yes"},
    {"id":2, "value":"no"},
    {"id":3, "value":"maybe"}
]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为这样的列表:

[
    {"id":1, "value":"10"},
    {"id":2, "value":"0"},
    {"id":3, "value":"5"}
]
Run Code Online (Sandbox Code Playgroud)

使用固定映射:

yes => 10
no => 0
maybe => 5
Run Code Online (Sandbox Code Playgroud)

我当前的解决方案基于if-elif-else这样的简单组合:

cat data.json| jq '.data[] | .value = (if .value == "yes" then "10" elif .value == "maybe" then "5"  else "0" end)'
Run Code Online (Sandbox Code Playgroud)

But this is really ugly and I'd love to have a more direct way to express the mapping.

Thanks for your help

json jq

4
推荐指数
1
解决办法
1万
查看次数

JQ:当属性值存在于 bash 数组中时选择

我正在使用 jq 1.4。当我的$selected_subnets(bash 变量)中存在 VPCZoneIdentifier 时,我尝试选择元素。

selected_subnets="valueA valueB"

input='{"elements":[
           {"name": "nameA", "VPCZoneIdentifier": "valueA"}, 
           {"name": "nameB", "VPCZoneIdentifier": "valueB"}, 
           {"name": "nameC", "VPCZoneIdentifier": "valueC"}
       ]}'
Run Code Online (Sandbox Code Playgroud)

testmatchfn 仅在 v1.5 上可用。

bash amazon-ec2 vpc jq

3
推荐指数
1
解决办法
1182
查看次数

如何使用JQ将对象列表展开为非规范化对象?

我有以下JSON行示例:

{"toplevel_key": "top value 1", "list": [{"key1": "value 1", "key2": "value 2"},{"key1": "value 3", "key2": "value 4"}]}
{"toplevel_key": "top value 2", "list": [{"key1": "value 5", "key2": "value 6"}]}
Run Code Online (Sandbox Code Playgroud)

我想使用JQ转换它,将列表展开到固定数量的"列",最后得到一个平面JSON对象列表,格式如下:

{
    "top-level-key": "top value 1",
    "list_0_key1": "value 1",
    "list_0_key2": "value 2",
    "list_1_key1": "value 3",
    "list_1_key2": "value 4",
}
{
    "top-level-key": "top value 2",
    "list_0_key1": "value 4",
    "list_0_key2": "value 5",
    "list_1_key1": "",
    "list_1_key2": "",
}
Run Code Online (Sandbox Code Playgroud)

注意:我实际上希望每行一个,格式化为易读性.

我能够获得我想要的输出的唯一方法是写出我的JQ表达式中的所有列:

$ cat example.jsonl | jq -c '{toplevel_key, list_0_key1: .list[0].key1, list_0_key2: .list[0].key2, list_1_key1: .list[1].key1, list_1_key2: .list[1].key2}' …
Run Code Online (Sandbox Code Playgroud)

json jq

3
推荐指数
1
解决办法
1150
查看次数

基于jq json中的where子句提取元素

我的Json结构如下所示.

如何使用jq提取名称为ansible的项目的ID?

json文件非常大

https://stedolan.github.io/jq/manual/

  {
    "id": 38,
    "name": "ansible",
    "path": "ansible",
    "description": "Ansible playbooks, roles, and supporting tools repos"
  },
  {
    "id": 18,
    "name": "Analytics",
    "path": "analytics",
    "description": "Big Data Analytics projects"
  }
Run Code Online (Sandbox Code Playgroud)

json jq

3
推荐指数
1
解决办法
2084
查看次数

如何使用 Julia、Pluto.jl 和 PlutoUI.jl 的 FilePicker 元素读取上传的 CSV 文件

我正在尝试使用 PlutoUI 库的 Filepicker 元素

md""" Upload a Comma Separated Values (.csv) file to use: $(@bind user_csv FilePicker()) """

允许用户上传 CSV 文件进行处理。不幸的是,没有检测到数据类型,数据被表示为一维 Int64 数组:

Dict("name"=>"mtg_binder.csv", "data"=>Int64[ 81 117 97 110 116 105 116 121 44 78 97 109 101 44 83 105 109 112 108 101 95 78 97 109 101 44 83 101 116 44 67 97 114 100 95 78 117 109 98 101 53 52 51 46 49 57 34 44 13 10], "type"=>"")

那么,如何将 Int64 数组处理/转换为可以推送到 …

csv file-upload dataframe julia pluto.jl

3
推荐指数
1
解决办法
507
查看次数

标签 统计

jq ×5

json ×4

amazon-ec2 ×1

bash ×1

cassandra ×1

csv ×1

dataframe ×1

file-upload ×1

julia ×1

pluto.jl ×1

scala ×1

types ×1

vpc ×1

zio ×1