2016-03-23 5 views
0

У меня есть набор данных в переменной data_1Доступ к данным внутри bag.tuple.bag.tuple

describe data_1; 
output: 
group_2: {group: (age: int,phone: chararray),group_1: {(group: (age: int,phone: chararray,id: int),student_details: {(id: int,firstname: chararray,lastname: chararray,age: int,phone: chararray,city: chararray)})}} 

и

DUMP data_1; 
output: 
(21,9848022330) {((21,9848022330,4),{(4,Preethi,Agarwal,21,9848022330,London)})} 
(21,9848022337) {((21,9848022337,1),{(1,Rajiv,Reddy,21,9848022337,Paris)})} 
(22,9848022338) {((22,9848022338,2),{(2,siddarth,Battacharya,22,9848022338,Kolkata)})} 
(22,9848022339) {((22,9848022339,3),{(3,Rajesh,Khanna,22,9848022339,Delhi)})} 
(23,9848022335) {((23,9848022335,6),{(6,Archana,Mishra,23,9848022335,Chennai)})} 
(23,9848022336) {((23,9848022336,5),{(5,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar)})} 
(24,9848022333) {((24,9848022333,7),{(7,Komal,Nayak,24,9848022333,trivendram)}),((24,9848022333,8),{(8,Bharathi,Nambiayar,24,9848022333,Chennai)})} 
(111,9834534343) {((111,9834534343,9),{(9,ABC,DEF,111,9834534343,Delhi1),(9,ABC,DEF,111,9834534343,Delhi2),(9,ABC,DEF,111,9834534343,Delhi3)})} 

Я хочу, чтобы удалить лишнюю bag.tuple & использовать только $ 1. $ 1 мешок.

Я пытаюсь это сделать, используя что-то вроде group_2_normal = FOREACH data_1 GENERATE $0.age,$0.phone,$1.$1; Но я до сих пор не могу удалить дополнительную сумку и кортеж, которые окружают мешок $ 1. $ 1.

Выход выше команды Еогеасп является:

21 9848022330 {({(4,Preethi,Agarwal,21,9848022330,London)})} 
21 9848022337 {({(1,Rajiv,Reddy,21,9848022337,Paris)})} 

Но желаемый результат:

21 9848022330 {(4,Preethi,Agarwal,21,9848022330,London)} 
21 9848022337 {(1,Rajiv,Reddy,21,9848022337,Paris)} 

ответ

0

Я думаю, что использование FLATTEN поможет. Поскольку у вас есть только одна строка в сумке, она даст вам то, что вы хотите.

group_2_normal = FOREACH data_1 GENERATE $0.age,$0.phone,FLATTEN($1.$1); 
Смежные вопросы