# Getting this while executing the lua script

**URL:** <https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985>\
**Category:** General Discussion\
**Created:** [March 23, 2017, 2:41am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985 "2017-03-23T02:41:15Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 2:41am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/1 "2017-03-23T02:41:15Z")

</div>

```auto
local function map_profile(record)
	-- Add user and password to returned map.
	-- Could add other record bins here as well.
	return map {tenantId=record.tenantId, txnid=record.txnid}
end
function profile_filter(stream,tenantId,glid)
	local function filter_tenantId(record)
		return record.tenantId == tenantId and record.glid==glid
	end
	return stream : filter(filter_tenantId) : map(map_profile)
end

```

```auto
	no field package.preload['ConversioLogs']
	no file './ConversioLogs.lua'
	no file '/usr/local/share/lua/5.1/ConversioLogs.lua'
	no file '/usr/local/share/lua/5.1/ConversioLogs/init.lua'
	no file '/usr/local/lib/lua/5.1/ConversioLogs.lua'
	no file '/usr/local/lib/lua/5.1/ConversioLogs/init.lua'
	no file '/opt/aerospike/sys/udf/lua/ConversioLogs.lua'
	no file '/opt/aerospike/sys/udf/lua/external/ConversioLogs.lua'
	no file '/opt/aerospike/usr/udf/lua/ConversioLogs.lua'
	no file './ConversioLogs.so'
	no file '/usr/local/lib/lua/5.1/ConversioLogs.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
	no file '/opt/aerospike/sys/udf/lua/ConversioLogs.so'
	no file '/opt/aerospike/sys/udf/lua/external/ConversioLogs.so'
	no file '/opt/aerospike/usr/udf/lua/ConversioLogs.so

```

---

<div class="post-metadata">

**Author:** ![pgupta](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.aerospike.com/pgupta/32/2351_2.png) [@pgupta](https://discuss.aerospike.com/u/pgupta)\
**Post date:** [March 23, 2017, 4:16am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/2 "2017-03-23T04:16:53Z")

</div>

How are you loading the lua module on the server? What client are you using … python? java?

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 4:39am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/3 "2017-03-23T04:39:46Z")

</div>

this issue is resolved i misspelled the lua file but thanks can you show me a sample lua script that returns json instead of a map

---

<div class="post-metadata">

**Author:** ![pgupta](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.aerospike.com/pgupta/32/2351_2.png) [@pgupta](https://discuss.aerospike.com/u/pgupta)\
**Post date:** [March 23, 2017, 4:44am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/4 "2017-03-23T04:44:23Z")

</div>

As far as I know, you cannot return json - you can only return integer, string, bytes, list or map types. [http://www.aerospike.com/docs/udf/known\_limitations.html](http://www.aerospike.com/docs/udf/known_limitations.html)

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 5:03am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/5 "2017-03-23T05:03:23Z")

</div>

ok i got it

can you write a sample lua script which combines filtering and sorting together.

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 12:14pm UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/6 "2017-03-23T12:14:31Z")

</div>

```auto
local function map_profile(record)
	-- Add user and password to returned map.
	-- Could add other record bins here as well.
	return map {tenantId=record.tenantId, txnid=record.txnid}
end
function profile_filter(stream,oid,afid,ip)
	local function filter_tenantId(record)
		return record.oid == oid and record.afid == afid
	end
	return stream : filter(filter_tenantId) : map(map_profile)
end

```

This how i am calling it from java client

```auto
  public List<Map<String, Object>> getMultiByLua(String table, Map<String, Object> queryParams)
      throws AerospikeException {
    QueryPolicy policy = new QueryPolicy();
    Statement statement = new Statement();
    statement.setNamespace(namespace);
    statement.setSetName(table);
    if (queryParams != null && queryParams.size() > 0) {
      // List<Filter> filters = new ArrayList<>();
      // for (Entry<String, Object> en : queryParams.entrySet()) {
      // Filter filter = Filter.equal(en.getKey(), Value.get(en.getValue()).toString());
      // filters.add(filter);
      // }
      statement.setFilters(Filter.equal("tenantId", (String) queryParams.get("tenantId")));
    }
    statement.setAggregateFunction("Clicks", "profile_filter", Value.get(queryParams.get("oid")),
        Value.get(queryParams.get("afid")));

    // passFilter will be applied in filter_example.lua.
    ResultSet recordSet = client.queryAggregate(null, statement);

   System.out.println(" *******************************");
   System.out.println( recordSet.toString());
   System.out.println(" *******************************");
    if (recordSet != null) {
      List<Map<String, Object>> records = new ArrayList<Map<String, Object>>();
      while (recordSet.next()) {
        Map<String, Object> map = (Map<String, Object>) recordSet.getObject();
        // Record record = (Record) map;
        // DBRecord dbRecord = DBRecord.fromRecord(record);
        records.add(map);
      }
      return records;
    }
    return null;

```

the record set comes out to be empty

---

<div class="post-metadata">

**Author:** ![pgupta](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.aerospike.com/pgupta/32/2351_2.png) [@pgupta](https://discuss.aerospike.com/u/pgupta)\
**Post date:** [March 23, 2017, 3:59pm UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/7 "2017-03-23T15:59:26Z")

</div>

1 - In profile\_filter, what is the “ip” - last argument? You are not passing it either in your call. If you don’t need it, I would take it out. 2 - In your input stream of records, do you actually have records that match the filtering criteria? oid && afid?

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 6:11pm UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/8 "2017-03-23T18:11:12Z")

</div>

actually there was a third filter on ip as well

 ![](https://us1.discourse-cdn.com/flex019/uploads/aerospike/original/1X/a7c7662ed1e8eb824666239593071fa92c8ca2b4.png)yes i do have record that matches the criteria

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 23, 2017, 6:11pm UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/9 "2017-03-23T18:11:53Z")

</div>

lua script is working fine from aql query

---

<div class="post-metadata">

**Author:** ![pgupta](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.aerospike.com/pgupta/32/2351_2.png) [@pgupta](https://discuss.aerospike.com/u/pgupta)\
**Post date:** [March 23, 2017, 6:39pm UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/10 "2017-03-23T18:39:37Z")

</div>

If it is working in AQL, it is not a StreamUDF issue. Has to be something in your Java implementation. You are saying there is an additional filter, but your java is not using it… so what you are posting is probably not your real code. Step through your code and you should be able to figure it out.

---

<div class="post-metadata">

**Author:** ![dhruv\_nagpal](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@dhruv\_nagpal](https://discuss.aerospike.com/u/dhruv_nagpal)\
**Post date:** [March 24, 2017, 1:45am UTC](https://discuss.aerospike.com/t/getting-this-while-executing-the-lua-script/3985/11 "2017-03-24T01:45:08Z")

</div>

i am using java client 3.3.1 but all the examples on github are using 3.3.3 can version be an issue
