What version of Drill are you using?
Also is planner.enable_decimal_data_type set to true on the system?

--Andries

On 4/27/18, 7:24 AM, "Peter Edike" <peter.ed...@interswitchgroup.com> wrote:

    Tried That, It did not work. Still Fails with the exception. Let me even 
add that even if the query is a simple select ....from statement, as long any 
of the fields is decimal type, the statement will fail with the stated exception
    
    Please Help.... a lot depends on this
    
    Best regards,
    Peter Edike
    
    This message has been marked as CONFIDENTIAL on Friday, April 27, 2018 @ 
3:24:36 PM
    
    -----Original Message-----
    From: Andries Engelbrecht <aengelbre...@mapr.com> 
    Sent: Friday, April 27, 2018 3:07 PM
    To: user@drill.apache.org
    Subject: Re: Exception While Querying Decimal Fields in Apache Drill
    
    Perhaps try to convert the predicate and select operations involving the 
decimal types to float or similar.
    
    i.e tran_completed = 1.0   and ((cast(SETTLE_AMOUNT_IMPACT as double) 
*(-1.0))/100.0)
    
    Alternatively you may have to cast the decimals as float, but that will be 
more cumbersome.
    
    --Andries
    
    On 4/27/18, 5:18 AM, "Peter Edike" <peter.ed...@interswitchgroup.com> wrote:
    
        I am trying to run the following query in apache drill, I am querying 
data stored in parquet files using the following query
        
        
        select pan, count(*) as number_of_transactions ,
        terminal_id,SUM((cast(SETTLE_AMOUNT_IMPACT as double) *-1)/100) AS 
settle_amount_impact
        
        
        from dfs.`/iswdata/storage/products/superswitch/parquet/transactions`
        
        where pan like '506126%' and terminal_id like '1%' and
        sink_node_name like ('SWTDB%')
        and source_node_name not like ('SWTDBLsrc')
        and tran_completed=1
        and tran_reversed = 0
        and tran_postilion_originated = 1
        AND tran_type = '01'
        --and pan like '506126%0011'
        group by pan,terminal_id
        
        The Schema for the data I am querying is as follows
        
        
        post_tran_id LONG
        
         post_tran_cust_id :LONG
        
         settle_entity_id :INTEGER
        
         batch_nr : INTEGER
        
         prev_post_tran_id : LONG
        
         next_post_tran_id : LONG
        
         sink_node_name : STRING
        
         tran_postilion_originated : DECIMAL
        
         tran_completed : DECIMAL
        
         tran_amount_req : DECIMAL
        
         tran_amount_rsp : DECIMAL
        
         settle_amount_impact : DECIMAL
        
         tran_cash_req : DECIMAL
        
         tran_cash_rsp : DECIMAL
        
        tran_currency_code : STRING
        
        tran_tran_fee_req : DECIMAL
        
        tran_tran_fee_rsp : DECIMAL
        
        tran_tran_fee_currency_code : STRING
        
        tran_proc_fee_req : DECIMAL
        
        tran_proc_fee_rsp : DECIMAL
        
        tran_proc_fee_currency_code : STRING
        
        settle_amount_req : DECIMAL
        
        settle_amount_rsp : DECIMAL
        
        settle_cash_req : DECIMAL
        
        settle_cash_rsp : DECIMAL
        
        settle_tran_fee_req : DECIMAL
        
        settle_tran_fee_rsp : DECIMAL
        
        settle_proc_fee_req : DECIMAL
        
        settle_proc_fee_rsp : DECIMAL
        
        settle_currency_code : STRING
        
        However When I run the query against the dataset, I get the following 
exception
        
        
        SYSTEM ERROR: ClassCastException: 
org.apache.drill.exec.vector.NullableDecimal28SparseVector cannot be cast to 
org.apache.drill.exec.vector.VariableWidthVector
        
        
        More so, the same error occurs when I include a decimal field in the 
select clause. Please, is there something I am missing or doing wrong, Any 
pointer will be deeply appreciated
        
        Kind Regards
        
        Peter
        ________________________________
        
        
    
    

Reply via email to