我是Cassandra的新手,我正在尝试创建一个用户定义的聚合,但一直停留在函数创建上。
表中数据为-
count| host
-----+-----------
102 | test_host1
100 | test_host2
101 | test_host2
101 | test_host3
104 | test_host3
101 | test_host1
100 | test_host3
103 | test_host3
102 | test_host3
100 | test_host1
我正在编写的函数将计算特定主机的表中有多少行。如果我为聚合提供test_host1,理想的结果将是3。
在下面找到函数的代码-
CREATE FUNCTION countSessions(dataMap map<text,int>,host text)
RETURNS NULL ON NULL INPUT
RETURNS map<text, int>
LANGUAGE java as
'
Integer countValue = dataMap.get(host);
if(countValue == null) {
countValue = 1;
} else {
countValue++;
}
dataMap.put(host,countValue);
return dataMap;
';
在cqlsh上执行此操作时,我得到以下错误-
InvalidRequest:code=2200[无效查询]message=“无法从Java源代码org.apache.cassandra.exceptions.InvalidRequest UESTEException:Java源代码编译失败:第2行:无法解析dataMap第7行:无法解析dataMap第8行:无法将dataMap解析为变量”
我无法理解我的函数代码出了什么问题。请帮助。
另外,是否有人可以向我推荐任何链接/站点(datastax除外),使用这些链接/站点我可以正确理解UDF和UDA。
感谢和问候,
维巴夫
附言——如果有人选择否决这个问题,请在评论中提及原因。
这不起作用,因为dataMap
在初始声明中被转换为小写。您可以这样做:
CREATE FUNCTION countSessions("dataMap" map<text,int>,host text)
RETURNS NULL ON NULL INPUT
RETURNS map<text, int>
LANGUAGE java as
'
Integer countValue = dataMap.get(host);
if(countValue == null) {
countValue = 1;
} else {
countValue++;
}
dataMap.put(host,countValue);
return dataMap;
';
或
CREATE FUNCTION countSessions(datamap map<text,int>,host text)
RETURNS NULL ON NULL INPUT
RETURNS map<text, int>
LANGUAGE java as
'
Integer countValue = datamap.get(host);
if(countValue == null) {
countValue = 1;
} else {
countValue++;
}
datamap.put(host,countValue);
return datamap;
';
让这个工作。
编译solidity源代码 通过solc编译器编译solidity代码到字节码。你可以参考solidity安装文档在本地安装编译器。 编写solidity代码运行: $ solc <contract>.sol --bin --abi --optimize -o <output-dir>/ bin和ABI编译器参数都需要充分利用web3j中的智能合约。 bin,输出包含十六进制编码的solidit
我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi
问题内容: 如何将Android DEX(VM字节码)文件反编译为相应的Java源代码? 问题答案: It’s easy 获取以下工具: 1)dex2jar将dex文件转换为jar文件 2)jd-gui查看jar中的java文件 由于dex2jar进行了一些优化,因此源代码具有很高的可读性。 Procedure:: 这是有关如何反编译的过程: 步骤1: 将中的转换为 注1:在Windows计算机上
我目前正在开发一个ASP.NET应用程序,该应用程序的解决方案中包含2个项目:一个Web应用程序和一个WebAPI。( 我已经尝试在“projectAPI”中包含对“projectWeb”的引用。 当我构建“projectAPI”时,浏览器显示以下消息: 编译错误 说明:编译所需的资源时出错 编译器错误消息:编译器失败,错误代码为-532462766。 当我删除引用时,不再有错误。 我能做什么?
null 完整的信息是这样的
问题内容: 我正在寻找Sun标准Java编译器的源代码。 jdk1.6.0_07有一些相关的类,但它们是接口(和)。在和下还有一些包,它们似乎是表示Java抽象语法树的接口。 但是我找不到编译器源-有人知道它在哪里吗? 问题答案: 检查此站点Java编程语言编译器(javac)组。来源在Mercurial存储库中。 jdk7 / tl / langtools(对于JDK 1.7) jdk6 / j