0

我有一个mydata.json如下文件:

{
  "student_id": "Student 01",
  "grades": [
    {
      "english": "A",
      "semester": 1
    },
    {
      "math": "B",
      "semester": 2
    }
  ],
  "attendance": [
    {
      "present": false,
      "timestamp": "2021-11-02"
    },
    {
      "present": true,
      "timestamp": "2021-09-02"
    }
  ]
}
{
  "student_id": "Student 02",
  "grades": [
    {
      "english": "C",
      "semester": 2
    },
    {
      "math": "A",
      "semester": 1
    }
  ],
  "attendance": [
    {
      "present": true,
      "timestamp": "2021-08-02"
    },
    {
      "present": false,
      "timestamp": "2021-07-02"
    }
  ]
}

上面的示例文件包含两个元素:Student 01Student 02. 我正在尝试将其加载到 kafka 主题student_data中,以便每个学生(即Student 01Student 02)成为单独的消息。

我尝试使用下面的 kafkacat 命令,但它将整个文件加载到有关该主题的单个消息中。

kcat -P -b localhost:29092 -t student_data mydata.json

有没有办法将此添加到主题中,以便每个条目都是单独的消息?...无需将每条消息分成单独的文件。

4

1 回答 1

2

您显示的不是有效的 JSON 文件。此外,CLI 工具仅解析行分隔格式

如果您将文件展平为 JSONlines 格式,请使用重定向

kcat -P  ... < data.jsonl

https://jsonlines.org/examples/

这同样适用于kafka-console-producer

于 2021-11-08T01:15:25.033 回答