【问题标题】:AVRO avdl file generationAVRO avdl 文件生成
【发布时间】:2013-02-06 17:46:43
【问题描述】:

我将 Person 记录定义为 Avro IDL (person.avdl):

@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
    record Person {
        string firstName;
        string lastName;
    }     
}

我正在生成 java 文件,所以这个正在生成 PersonProtocol.java 和 Person.java。 PersonProtocol.java 是空文件,有没有办法可以排除生成这个文件...

【问题讨论】:

    标签: java hadoop avro


    【解决方案1】:

    您不能排除该文件的生成,因为 Avro IDL 定义了一个协议(查看更多here)。

    您的 PersonProtocol.java 是空的,因为您没有使用提供 Avro IDL 语言的 RPC。

    例如:

    @namespace("net.tzolov.avro.extend")
    protocol PersonProtocol {
     record Person {
        string firstName;
        string lastName;
     }
    
     string printMessage(string theMessage);    
    }
    

    通过使用代码生成,您将获得定义 RPC 方法的特定行:

    void printMessage(java.lang.CharSequence theMessage, org.apache.avro.ipc.Callback<java.lang.CharSequence> callback) throws java.io.IOException;
    

    如果你只是想存储数据,你应该使用 avro schema (avsc)。

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多