predictionio-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pat Ferrel <...@occamsmachete.com>
Subject Re: Passing an array of objects to get predictions?
Date Fri, 16 Jun 2017 17:24:45 GMT
Thanks Donald, misread the question :-)


On Jun 16, 2017, at 9:10 AM, Donald Szeto <donald@apache.org> 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 <pat@occamsmachete.com <mailto:pat@occamsmachete.com>>
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 <shanewaldenjohnson@gmail.com <mailto:shanewaldenjohnson@gmail.com>>
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>


Mime
View raw message