Exception dans le type coulée de Chararry de double dans le de PORC

J'ai un exemple de saisie des onglets séparés clé, valeur paire comme suit

B_1001@2012-06-15   [email protected]
B_1001@2012-06-18   [email protected]
B_1002@2012-09-26   [email protected]
B_1002@2012-09-28   [email protected]

et je suis le chargement de ce fichier en porc et en procédant de la manière suivante

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}}

cela fonctionne jusqu'ici
mais
lorsque j'utilise Arthematical des calculs sur les b.v1, je suis ClassCastException comme java.lang.La chaîne ne peut pas être utilisé pour java.lang.Double

mais décrivent donne aucune erreur

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

quand je dump d; id donnant à l'exception

J'ai même essayé de typecasting 'b' ainsi

b = foreach a generate key, (tuple (double,double))STRSPLIT(value,'@',2); 

maintenant quand je décris b;
Sa donne une erreur comme
Ne peut pas lancer de tuple avec le schéma tuple à tuple avec schéma n-uplet({double,double})

Merci de m'aider à savoir pourquoi est-elle venue comme cela, même décrire montre schéma correct.

OriginalL'auteur sudheer | 2013-09-26