需要定制的JSON输出-
(我有两个文件-文本文件和架构文件)
abc.txt-
100002030,Tom,peter,eng,5巷3号,加利福尼亚州,10021
100003031,Tom,john,doc,block 2,lane 2,加利福尼亚,10021
100004032,Tom,Jim,eng,街区1巷1,加利福尼亚,10021
100005033,Tom,trek,doc,block 2,lane 2,加利福尼亚州,10021
100006034,Tom,peter,eng,6车道,6座,加利福尼亚州,10021
abc_schema.txt(字段名称和位置)
Rollno 1
名2
姓氏3
资格4
地址1 5
地址2 6
城市7
zip 8
规则-
预期输出-
{“rollno”:“100002”,“firstname”:“Tom”,“lastname:” peter”,“qualification”:“eng”,“Address”:“block 3 lane 5 California”,“zipcode”:“10021” “}
{“rollno”:“100002”,“firstname”:“Tom”,“lastname:” john”,“qualification”:“doc”,“Address”:“block 2 lane 2 California”,“zipcode”:“10021” “}
{“rollno”:“100004”,“firstname”:“Tom”,“lastname:” jim”,“qualification”:“eng”,“Address”:“block 1 lane 1 california”,“zipcode”:“10021” “}
{“rollno”:“100005”,“firstname”:“Tom”,“lastname:“trek”,“qualification”:“doc”,“Address”:“block 2 lane 2 California”,“zipcode”:“10021” “}
{“rollno”:“100006”,“firstname”:“Tom”,“lastname:” peter”,“qualification”:“eng”,“Address”:“block 6 lane 6 california”,“zipcode”:“10021” “}
我不想对字段进行硬编码,而是从架构文件中读取,其想法是拥有可重用的代码。类似于循环模式文件和文本文件
最佳答案
A = load 'abc.txt' using PigStorage(',') as (rollno, Fname,Lname,qua,add1,add2,city,Zipcode);
B = foreach A generate rollno, Fname,Lname,qua,concate (add1,add2,city) ,Zipcode;
C= STORE B
INTO 'first_table.json'
USING JsonStorage();
希望这可以帮助。