如何将推文放在avro文件中并使用Spring XD将它们保存在HDFS中?

时间:2015-04-08 13:47:38

标签: avro spring-xd

如何将推文放入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对象的任何详细信息。

我是否必须构建自定义转换器?

有人可以帮忙吗?这让我疯了......

感谢。

1 个答案:

答案 0 :(得分:1)

根据hdfs-dataset documentation,Kite SDK用于根据您传递给它的对象推断AVRO架构。从它的角度来看,你传入了一个String,这就是它的行为方式。由于没有明确选择要使用的hdfs-dataset的模式的机制,因此您必须创建一个Java类代表的推文(或使用Twitter4J api),将推文JSON转换为Java对象(自定义处理器)将是必要的),并将其输出到您的接收器。 Hdfs-dataset将使用基于您的类的模式。