apache-spark - 使用定义的模式以 avro 格式从 Spark 写入 Kafka?
问题描述
我有一个需要写入 Kafka 的数据框。
我定义了 avro 模式,类似于:
{
"namespace": "my.name.space",
"type": "record",
"name": "MyClass",
"fields": [
{"name": "id", "type": "string"},
{"name": "parameter1", "type": "string"},
{"name": "parameter2", "type": "string"},
...
]
}
它是自动生成到java bean的。这与此类似:
public class MyClass extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
String id;
String parameter1;
String parameter2;
...
}
我发现要以 avro 格式编写,只有to_avro方法需要一列。
所以我的问题是,有没有办法在这个定义的模式中强制以 Avro 格式写入 Kafka?
解决方案
您只能在使用 Confluent 时执行此操作。见https://aseigneurin.github.io/2018/08/02/kafka-tutorial-4-avro-and-schema-registry.html
推荐阅读
- aws-codebuild - 无法在 CodeBuild 中找到多阶段构建的 docker build 输出
- r - 用 R 中的完整符号替换特定模式(缩短符号)
- python - 如果行值小于 1000000,如何删除列
- javascript - 如何从 React 中的状态数组中按索引删除项目
- reactjs - GET 请求不起作用,但 POST 请求正在用于数据库查询
- terraform - 如何在创建本地人时遍历 terraform 中的地图列表?
- dart - Dart 中的 codeUnits 属性与 utf8.encode 函数
- javascript - WebSocket 在 localhost 中有效,但在 127.0.0.1 中无效
- bash - Bash 仅从头开始完成(^...$)?
- java - 从属性文件中传递一个 Bean 名称