我似乎无法在网上找到任何示例。 Cassandra 3.0 supports UDF and UDA可以用Java,Python或其他语言编写。
如何设置Python中定义的UDF或UDA(我的意思是Python函数,而不是Java或Javascript中的函数通过Python驱动程序)?
答案 0 :(得分:2)
你不清楚你是否想要使用类似python驱动程序的东西来定义UDF,UDA,或者你想要用python语言定义UDF的通用方法,但这可能会引导你进入右边方向。
我在python-driver的test_metadata.py中找到了以下示例。
javascript中的UDF示例
session.execute("""CREATE FUNCTION {0}.sum_int(key int, val int)
RETURNS NULL ON NULL INPUT
RETURNS int
LANGUAGE javascript AS 'key + val';""".format(keyspace_name))
我相信您可以通过更改上面的语言参数来切换函数实际编写的语言。
以下是java中函数声明的示例。
session.execute("""CREATE OR REPLACE FUNCTION update_map(s map<int, int>, i int)
RETURNS NULL ON NULL INPUT
RETURNS map<int, int>
LANGUAGE java AS 's.put(new Integer(i), new Integer(i)); return s;';""")
示例UDA
session.execute("""CREATE AGGREGATE {0}.sum_agg(int)
SFUNC sum_int
STYPE int
INITCOND 0"""
.format(self.keyspace_name))
此处还有一篇博文,您可以参考。 http://www.datastax.com/dev/blog/cassandra-user-defined-functions-python-driver