Пользовательская функция и агрегатор потоков в DolphinDB - PullRequest
3 голосов
/ 18 марта 2019

Я хочу использовать пользовательскую функцию в агрегаторе потоков в DolphinDB.

Однако оно возвращает исключение, и я не знаю, как с ним справиться:

def mymid(vec){
    return (first(vec) + last(vec))/2
}
share streamTable(10000:0, `time`device`metric, [TIMESTAMP, SYMBOL, DOUBLE] as sensor
output = table(10000:0, `time`mymid, [TIMESTAMP, DOUBLE]);
aggregator = createStreamAggregator("aggregator", 120, 60, <mymid(metric)>, sensor, output, `time)


execution was completed with exception
Usage: createStreamAggregator(name, windowSize, step, metrics, dummyTable, outputTable, timeColumn, [useSystemTime=false], [keyColumn], [garbageSize]). 
the outermost meta code must be aggregated functions.

Очевидно, mymid является агрегированной функцией. У меня вопрос, как создать агрегированную пользовательскую функцию в DolphinDB?

1 Ответ

1 голос
/ 07 июня 2019

Используйте ключевое слово defg вместо ключевого слова def для представления агрегированной функции

defg mymid(vec){
    return (first(vec) + last(vec))/2
}
...