需要定制的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的前6个字符
  • 需要俱乐部地址1 |地址2 |城市
  • 以上
  • 的前缀地址

    预期输出-

    {“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();
    

    希望这可以帮助。

    07-24 17:22