如何将推文放入avro文件并使用Spring XD将其保存在HDFS中?该文件只告诉我做以下事情:
xd:>stream create --name mydataset --definition "time | hdfs-dataset --batchSize=20" --deploy
这适用于源“时间”但如果我想将推文存储为avro,它只会将原始json字符串放入avro文件中,这非常愚蠢。
我找不到有关如何告诉Spring XD应用特定Avro Schema(avsc)或将json String转换为Tweet对象的任何详细信息。
我是否必须构建自定义转换器?
有人可以帮忙吗?这让我疯了......
感谢。
答案 0 :(得分:1)
根据hdfs-dataset documentation,Kite SDK用于根据您传递给它的对象推断AVRO架构。从它的角度来看,你传入了一个String,这就是它的行为方式。由于没有明确选择要使用的hdfs-dataset的模式的机制,因此您必须创建一个Java类代表的推文(或使用Twitter4J api),将推文JSON转换为Java对象(自定义处理器)将是必要的),并将其输出到您的接收器。 Hdfs-dataset将使用基于您的类的模式。