Tag: 用户定义函数

执行UDF时Pig错误1070

我正在尝试在猪中加载我自己的UDF。 我已经使用eclipse的导出function将它变成了一个jar。 我试图在本地运行它,所以我可以确保它在我把jar放在HDFS上之前有效。 在本地运行时,我收到以下错误: ERROR 1070: Could not resolve myudfs.MONTH using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.] 脚本 REGISTER myudfs.jar; –DEFINE MONTH myudfs.MONTH; A = load ‘access_log_Jul95’ using PigStorage(‘ ‘) as (ip:chararray, dash1:chararray, dash2:chararray, date:chararray, getRequset:chararray, status:int, port:int); B = FOREACH A GENERATE myudfs.MONTH(date); DUMP B; function package myudfs; import java.io.IOException; import org.apache.pig.EvalFunc; import org.apache.pig.data.Tuple; import org.apache.pig.impl.util.WrappedIOException; […]

Apache pig脚本,错误1070:Java UDF无法解析导入

我正在尝试编写一个Java UDF,其最终目标是扩展/覆盖PigStorage的加载方法,以支持多行的条目。 我的猪脚本如下: REGISTER udf.jar; register ‘userdef.py’ using jython as parser; A = LOAD ‘test_data’ USING PigStorage() AS row:chararray; C = FOREACH A GENERATE myTOKENIZE.test(); DUMP D; udf.jar看起来像: udf/myTOKENIZE.class myTOKENIZE.java导入org.apache.pig。* ande扩展了EvalFunc。 测试方法只返回一个Hello world String。 我遇到的问题是,当我尝试调用类myTOKENIZE的方法test()时,我得到错误1070:错误1070:无法使用导入解析myTOKENIZE.test:[,java.lang。,org.apache.pig .builtin。,org.apache.pig.impl.builtin。]想法?

如何获得cassandra 2.2中的前5条记录

我需要帮助。 我有一个查询,按日期(不是日期+时间)和金额总和获得前5名记录组。 我写了以下内容,但它返回的所有记录不仅仅是前5条记录 CREATE OR REPLACE FUNCTION state_groupbyandsum( state map, datetime text, amount text ) CALLED ON NULL INPUT RETURNS map LANGUAGE java AS ‘String date = datetime.substring(0,10); Double count = (Double) state.get(date); if (count == null) count = Double.parseDouble(amount); else count = count + Double.parseDouble(amount); state.put(date, count); return state;’ ; CREATE OR REPLACE AGGREGATE […]

如何在Java / Kotlin中创建一个返回复杂类型的Spark UDF?

我正在尝试编写一个返回复杂类型的UDF: private val toPrice = UDF1<String, Map> { s -> val elements = s.split(” “) mapOf(“value” to elements[0], “currency” to elements[1]) } val type = DataTypes.createStructType(listOf( DataTypes.createStructField(“value”, DataTypes.StringType, false), DataTypes.createStructField(“currency”, DataTypes.StringType, false))) df.sqlContext().udf().register(“toPrice”, toPrice, type) 但是每次我用这个: df = df.withColumn(“price”, callUDF(“toPrice”, col(“price”))) 我得到一个神秘的错误: Caused by: org.apache.spark.SparkException: Failed to execute user defined function($anonfun$28: (string) => struct) at […]

如何编译Hive UDF

我正在尝试编译这个UDF: package com.dataminelab.hive.udf; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; import java.security.*; /** * Calculate md5 of the string */ public final class Md5 extends UDF { public Text evaluate(final Text s) { if (s == null) { return null; } try { MessageDigest md = MessageDigest.getInstance(“MD5”); md.update(s.toString().getBytes()); byte[] md5hash = md.digest(); StringBuilder builder = new StringBuilder(); for […]

如何使用matlabcontrol.jar从Java调用用户定义的Matlab

我试图调用用户定义的Matlab函数(M文件),该函数从我在Eclipse中开发的Java应用程序中获取3个参数(Java字符串)。 目前,我能够使用disp或sqr等函数/命令调用proxy.eval和proxy.feval方法。 但是当我尝试调用用户定义的函数时,它在matlab控制台上说没有像这样定义的函数,并且在Java控制台MatlabInvocationException发生MatlabInvocationException 。 然后我尝试使用一个简单的用户定义函数,该函数不带参数,只有单行disp(‘Hello’)但结果仍然相同。 所以我认为不是类型转换问题,而是如何调用用户定义的函数。 请尽快有人帮帮我吗? 我很快就会完成这个项目的截止日期。 如果有人能提出解决方案,我会非常感激。 (Joshuwa Kaplan先生,有没有关于在你的post中解决这样的问题的指南?我试过但没有找到任何东西) 提前致谢