вот моя проблема.
Я зарегистрировал такой модуль
asclient.client.udfRegister('./lua/lm.lua', function (error) {
if (error) {
console.error('Error: %s [%d]', error.message, error.code)
}
});
После этого кода я проверяю, правильно ли зарегистрирован мой модуль
aql> show modules
и вывод
| "lm.lua" | "824bf77bff0f8b35c4eacc5ddcee82b1802a0c63" | "LUA" |
, поэтому я почти уверен, что модуль загружен
Затем я пытаюсь применить некоторые функции в этом файле lm.lua
var ctoken = '0878d655bd4c438236b060b9b1c1d2af';
var key = new Key('namespace', 'set', 12345)
var udf = { module: 'lm', funcname: 'getlm', args: [ctoken]}
asquery.client.apply(key, udf, function (error, result) {
if (error) throw error
console.log(result);
});
Содержимое файла lua
function getlm(stream, conv)
local function transformer(rec)
local touple = map()
touple["1"] = rec["1"]
touple["2"] = rec["2"]
touple["3"] = rec["3"]
return touple
end
return stream:map(transformer)
end
По сути, я сопоставляю все поля в AS и просто хочу вернуть какой-то результат, чтобы убедиться, что он работает правильно, но по какой-то причине всегда возвращаю
AerospikeError: /opt/aerospike/usr/udf/lua/lm.lua:17: attempt to call method 'map' (a nil value)
Есть ли способ выгрузить данные внутри этого файла .lua или просто проверить, совпадают ли данные потока с ожидаемыми
Спасибо.