我在配置单元中创建了一个自定义项,以便在配置单元中添加自动增量列。
import org.apache.hadoop.hive.ql.exec.UDF;
public class AutoIncrUdf extends UDF {
int Value;
public int evaluate() {
Value++;
return Value;
}
}
我创建了一个临时函数 temp
在我的table上用作
Select temp() from table1;
它将所有行作为:
1
1
1
1
等等。但我想把它当作
1
2
3
4
4条答案
按热度按时间l7mqbcuq1#
我认为最好使用下面的代码在配置单元中自动增加自定义项:
zz2j4svz2#
应该有用。每个调用创建一个udf类示例。也许试试
static int Value;
.. 德国劳埃德船级社y1aodyip3#
向类添加有状态属性:
添加注解
@UDFType(stateful = true)
否则计数器值不会在配置单元列中获得增量,它只会为所有行返回值1,而不是实际的行号。这和你面临的问题是一样的。omjgkv6w4#
它对我有用。
请尝试以下方法:
http://svn.apache.org/repos/asf/hive/trunk/contrib/src/java/org/apache/hadoop/hive/contrib/udf/udfrowsequence.java
创建临时函数rowsequence作为.udfrowsequence';
从'table'中选择rowsequence(100)作为id,field1,field2,其中'condition';