Search code examples
apache-pig

mismatched input 'MT_DVS' expecting SEMI_COLON when adding casting data type


I can't see any syntax problem in my code:

E1ECPRA = FOREACH E1ECPRA_BRUT GENERATE
    IsStringNull(CD_SI,'')                          AS CD_SI,
    IsStringNull(CD_EFS,'')                         AS CD_EFS,
    IsStringNull(IDT_ETT_CTR,'')                            AS IDT_ETT_CTR,
    IsStringNull(NO_PCI,'')                                 AS NO_PCI,
    IsStringNull(CD_DVS_ORI,'')                     AS CD_DVS_ORI,
    IsStringNull(CD_NOR_CG,'')                      AS CD_NOR_CG,
    IsStringNull(CD_BT,'')                              AS CD_BT,
    IsStringNull(CD_CRV_CIA_ORI,'')                  AS CD_CRV_CIA_ORI,
    IsStringNull(NO_STR_CPB,'')                     AS NO_STR_CPB,
    IsStringNull(NO_STR_RPQ,'')                     AS NO_STR_RPQ,
    MT_DVS                                          AS (float) MT_DVS,
    MT_CVE                                          AS (float) MT_EUR,
    IsStringNull(NO_CTR_MTR_FUS,'')                AS NO_CTR_MTR_FUS,
    IsStringNull(CD_PCEC,'')                        AS CD_PCEC,
    IsStringNull(CD_TY_PCEC,'')                     AS CD_TY_PCEC,
    IsStringNull(CD_ACT_CG,'')                      AS CD_ACT_CG,
    IsStringNull(CD_APL_SRC,'')                     AS CD_APLI_SRC,
    IsStringNull(CD_LET_CPT,'')                     AS CD_LET_CPT;

Or the program return this error in the line :

MT_DVS                                          AS (float) MT_DVS,

mismatched input 'MT_DVS' expecting SEMI_COLON

Is there a synthax error here ?


Solution

  • (float)MT_DVS  AS  MT_DVS,
    (float)MT_CVE  AS  MT_EUR,
    

    Or

    MT_DVS:float  AS  MT_DVS,
    MT_CVE:float  AS  MT_EUR,