O mesmo cabeçalho de instâncias (arff) para todas as minhas consultas ao banco de dados

estou usandoInstanceQuery , Consultas SQL, para construir minhaInstâncias. Mas os resultados da minha consulta não vêm na mesma ordem sempre que é normal no SQL. Beacuse deste Instances constucted de diferentes SQL tem cabeçalhos diferentes. Um exemplo simples pode ser visto abaixo. Eu suspeito que meus resultados mudem por causa desse comportamento.

Cabeçalho 1

@attribute duration numeric
@attribute protocol_type {tcp,udp}
@attribute service {http,domain_u}
@attribute flag {SF}

Cabeçalho 2

@attribute duration numeric
@attribute protocol_type {tcp}
@attribute service {pm_dump,pop_2,pop_3}
@attribute flag {SF,S0,SH}

Minha pergunta é: Como posso fornecer informações de cabeçalho corretas para a construção da instância.

Alguma coisa abaixo do fluxo de trabalho é possível?

obtenha informações de cabeçalho pré-preparadas a partir do arquivo arff ou de outro local.dar exemplo construção esta informação de cabeçalhochame a função sql e obtenha instâncias (cabeçalho + dados)

Eu estou usando a seguinte função sql para obter instâncias do banco de dados.

public static Instances getInstanceDataFromDatabase(String pSql
                                      ,String pInstanceRelationName){
    try {
        DatabaseUtils utils = new DatabaseUtils();

        InstanceQuery query = new InstanceQuery();

        query.setUsername(username);
        query.setPassword(password);
        query.setQuery(pSql);

        Instances data = query.retrieveInstances();
        data.setRelationName(pInstanceRelationName);

        if (data.classIndex() == -1)
        {
              data.setClassIndex(data.numAttributes() - 1);
        }
        return data;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

questionAnswers(2)

yourAnswerToTheQuestion