Thanks Donald, misread the question :-)

On Jun 16, 2017, at 9:10 AM, Donald Szeto <[email protected]> wrote:

Hi Shane,

Look for the query class that is part of the template (it is a type parameter 
for the algorithm class). There you can customize your input query to accept an 
array of objects, then modify the predict method in the algorithm class to 
handle them.

I believe this is getting asked more that might warrant a framework level 
support. It would be great help if you could file a feature request on our JIRA.

Regards,
Donald

On Fri, Jun 16, 2017 at 9:04 AM Pat Ferrel <[email protected] 
<mailto:[email protected]>> wrote:
Arrays of events need to be posted to POST 
http://localhost:7070/batch/events.json?accessKey= 
<http://localhost:7070/batch/events.json?accessKey=>… Notice the different URL. 
Look towards the bottom of this page: 
https://predictionio.incubator.apache.org/datacollection/eventmodel/ 
<https://predictionio.incubator.apache.org/datacollection/eventmodel/>


On Jun 16, 2017, at 7:35 AM, Shane Johnson <[email protected] 
<mailto:[email protected]>> wrote:

Has anyone extended PredictionIO to handle an array of objects instead of 
Posting a single object to get individual scores.

For example if I post this to localhost:8000/queries.json

        {
            "AccountId": "0016A000001vxxxxx",
                "OpportunityId": "0066A000001xxxxxx",
                "NaicsCode": 518420, 
            "AnnualRevenue": 100000000, 
            "NumberOfEmployees": 10000, 
            "BillingState": "Virginia", 
            "BillingCountry": "United States"
        }

I get the expected response of

{
  "score": 0.7110000252723694
}

but when I post this

[
        {
            "AccountId": "0016A000001vxxxxx",
                "OpportunityId": "0066A000001xxxxxx",
                "NaicsCode": 518420, 
            "AnnualRevenue": 100000000, 
            "NumberOfEmployees": 10000, 
            "BillingState": "Virginia", 
            "BillingCountry": "United States"
        },
        {
                "AccountId": "0045H000001xxxxxx",
                "OpportunityId": "0088A000001exxxxx",
                "NaicsCode": 518420, 
            "AnnualRevenue": 100000000, 
            "NumberOfEmployees": 10000, 
            "BillingState": "Virginia", 
            "BillingCountry": "United States"
        }
]

I get the following error.

Query:
[
...
]

Stack Trace:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected 
BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
        at 
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)


I expected to get the error but am hoping someone could point me in the right 
direction on where to extend the Scala code to interpret an Array of Objects 
into the Query object and then return multiple scores.

Thanks in advance if anyone has worked on this.

Shane Johnson | 801.360.3350

LinkedIn <https://www.linkedin.com/in/shanewjohnson> | Facebook 
<https://www.facebook.com/shane.johnson.71653>

Reply via email to