[ 
https://issues.apache.org/jira/browse/MADLIB-1284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16690786#comment-16690786
 ] 

Chris Verges commented on MADLIB-1284:
--------------------------------------

A quick workaround we've identified is to create a *VIEW* that marshals the 
JSONB object keys into their own columns.

> linregr_train fails when dependent variable is a JSONB element
> --------------------------------------------------------------
>
>                 Key: MADLIB-1284
>                 URL: https://issues.apache.org/jira/browse/MADLIB-1284
>             Project: Apache MADlib
>          Issue Type: Bug
>          Components: Module: Linear Regression
>            Reporter: Nandish Jayaram
>            Priority: Major
>
> An issue reported in the user mailing list 
> (https://lists.apache.org/thread.html/ab645438d4ab6ab3508f3e7c790d2fc65fe845031bd481aa0bdff5f1@%3Cuser.madlib.apache.org%3E):
> I have a table that contains a JSONB field (Postgres 10.x) and am now looking 
> to analyze all that rich data with MADLib.  Example query:
> {quote}SELECT madlib.linregr_train (
>   'regr_example',         -- source table
>   'regr_example_model',   -- output model table
>   '(data->>''y'')::int',     -- dependent variable
>   'ARRAY[1, (data->>''x1'')::int, (data->>''x2'')::int]'      -- independent 
> variables
> );{quote}
> However, it looks like MADLib isn't liking using these fields when it comes 
> to creating the temporary table:
> {quote}ERROR:  spiexceptions.SyntaxError: syntax error at or near "')::int'"
> LINE 7:                     , '(data->>'y')::int'::varchar      as d...
>                                          ^
> QUERY:  
>             create table regr_example_model_summary as
>                 select
>                       'linregr'::varchar                  as method
>                     , 'regr_example'::varchar           as source_table
>                     , 'regr_example_model'::varchar              as out_table
>                     , '(data->>'y')::int'::varchar      as dependent_varname
>                     , 'ARRAY[1, (data->>'x1')::int, 
> (data->>'x2')::int]'::varchar    as independent_varname
>                     , 0::integer       as num_rows_processed
>                     , 4::integer         as num_missing_rows_skipped
>                     , NULL::text                as grouping_col
>            
> CONTEXT:  Traceback (most recent call last):
>   PL/Python function "linregr_train", line 20, in <module>
>     return linear.linregr_train(**globals())
>   PL/Python function "linregr_train", line 146, in linregr_train
> PL/Python function "linregr_train"{quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to