我正在使用InstanceQuery SQL查詢構造我的Instances。但是我的查詢結果並不總是和SQL中的正常一樣。 由於不同的SQL構建的這個實例有不同的頭文件。一個簡單的例子可以在下面看到。我懷疑我的結果因爲這種行爲而改變。所有數據庫查詢的相同實例頭(arff)
頁眉1
@attribute duration numeric
@attribute protocol_type {tcp,udp}
@attribute service {http,domain_u}
@attribute flag {SF}
頭2
@attribute duration numeric
@attribute protocol_type {tcp}
@attribute service {pm_dump,pop_2,pop_3}
@attribute flag {SF,S0,SH}
我的問題是:我怎樣才能給正確的頭信息,以實例建設。
就像下面的工作流程是可能的?
- 從arff文件或其他地方獲取預先準備好的標題信息。
- 給例如建設這個頭信息
- 調用SQL函數,並得到實例(頭+數據)
我使用下面的SQL函數來獲取從數據庫實例。
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);
}
}