小编sud*_*eer的帖子

类型铸造Chararry中的异常在PIG中加倍

我有一个示例输入作为制表符分隔键,值对如下

B_1001@2012-06-15   96.73429163933419@0.5511284347710459
B_1001@2012-06-18   187.4348199976547@0.5544551559243536
B_1002@2012-09-26   745.4912066349087@0.8398570478932768
B_1002@2012-09-28   60.97117969729124@0.8500267379723409
Run Code Online (Sandbox Code Playgroud)

我正在将此文件加载到猪中并执行以下操作

a = load '/home/HadoopUser/Desktop/a.txt' as (key:chararray, value:chararray);

describe a;
a: {key: chararray,value: chararray}

b = foreach a generate key, flatten(STRSPLIT(value,'@',2)) as (v1:double,v2:float);
describe b;
b: {key: chararray,v1: double,v2: float}

c = group b by key;
 describe c;
c: {group: chararray,b: {key: chararray,v1: double,v2: float}}
Run Code Online (Sandbox Code Playgroud)

这工作到这里,但是当我在b.v1上使用数学计算时,我得到ClassCastException,因为java.lang.String无法转换为java.lang.Double

但描述没有错误

d = foreach c generate group,SUM(b.v1);
describe d;
d: {group: chararray,double}
Run Code Online (Sandbox Code Playgroud)

当我倾倒d; 它给了例外

我甚至尝试过类型转换'b'

b = foreach a generate key, (tuple (double,double))STRSPLIT(value,'@',2); 
Run Code Online (Sandbox Code Playgroud)

现在当我描述b; 它给出了一个错误,因为无法将使用模式元组的元组转换为使用模式元组({double,double})的元组 …

hadoop mapreduce apache-pig

8
推荐指数
1
解决办法
1万
查看次数

OLAP CUBE可以在HBase中完成吗?

有没有办法用它在HBase或OLAP中创建CUBE DIMENSIONS?我想用我的HBASE或HIVE创建CUBE DIMENSIONS类应用程序并将其与SSAS连接以用于报告目的,这可能吗?如果是soo,请指导我一些链接和代码.

我试图在hive中创建多维数据集视图,我想知道HBase是否可行.

谢谢...

ssas hadoop hbase hive olap-cube

6
推荐指数
1
解决办法
7245
查看次数

标签 统计

hadoop ×2

apache-pig ×1

hbase ×1

hive ×1

mapreduce ×1

olap-cube ×1

ssas ×1