IllegalArgumentException: value not matched by this serializer

6 views
Skip to first unread message

Iris Eiron

unread,
Sep 20, 2010, 4:08:08 AM9/20/10
to Jaql Users
Hello,

What does the following exception mean? What's causing it?

jaql> $popularDocIDs -> top 2;
[
{
"docid": 1745119925
},
{
"docid": 1745321350
}
]

jaql> $relations -> top 2;
[
{
"docid": 1761177742,
"userid": "arsenal"
},
{
"docid": 1772651053,
"userid": "arsenal"
}
]

jaql> $docTermTF -> top 2;
[
{
"TF": 1,
"docid": 4572673,
"term": "cant~"
},
{
"TF": 1,
"docid": 4572673,
"term": "joke~"
}
]


jaql> $x = join $docTermTF, $relations, $popularDocIDs
where $docTermTF.docid == $relations.docid
and $docTermTF.docid == $popularDocIDs.docid
into {$docTermTF.docid, $docTermTF.term, $docTermTF.TF};

jaql> $x -> write(hdfs("hdfs/temp/x"));
java.lang.reflect.UndeclaredThrowableException
at com.ibm.jaql.lang.expr.core.Expr.getCapturedVars(Expr.java:
763)
at
com.ibm.jaql.lang.rewrite.WriteAssignment.rewrite(WriteAssignment.java:
67)
at
com.ibm.jaql.lang.rewrite.RewritePhase.run(RewritePhase.java:128)
at
com.ibm.jaql.lang.rewrite.RewriteEngine.run(RewriteEngine.java:170)
at com.ibm.jaql.lang.Jaql.prepareNext(Jaql.java:443)
at com.ibm.jaql.lang.Jaql.run(Jaql.java:557)
at com.ibm.jaql.lang.Jaql.run(Jaql.java:95)
at
com.ibm.jaql.util.shell.AbstractJaqlShell.run(AbstractJaqlShell.java:
54)
at
com.ibm.jaql.util.shell.AbstractJaqlShell.main(AbstractJaqlShell.java:
100)
at JaqlShell.main(JaqlShell.java:322)
Caused by: java.io.IOException: java.lang.IllegalArgumentException:
value not matched by this serializer
at
com.ibm.jaql.io.serialization.text.schema.ArraySerializer.write(ArraySerializer.java:
105)
at
com.ibm.jaql.io.serialization.text.schema.ArraySerializer.write(ArraySerializer.java:
14)
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer.write(SchemaTextFullSerializer.java:
96)
at
com.ibm.jaql.lang.expr.core.ConstExpr.decompile(ConstExpr.java:81)
at
com.ibm.jaql.lang.expr.core.TransformExpr.decompile(TransformExpr.java:
130)
at
com.ibm.jaql.lang.expr.core.JoinExpr.decompile(JoinExpr.java:161)
at
com.ibm.jaql.lang.expr.core.TransformExpr.decompile(TransformExpr.java:
130)
at com.ibm.jaql.lang.expr.core.Expr.decompile(Expr.java:118)
at com.ibm.jaql.lang.expr.core.Expr.getCapturedVars(Expr.java:
759)
... 9 more
Caused by: java.lang.IllegalArgumentException: value not matched by
this serializer
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer
$DefaultBasicSerializer.write(SchemaTextFullSerializer.java:175)
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer.write(SchemaTextFullSerializer.java:
96)
at
com.ibm.jaql.io.serialization.text.TextFullSerializer.write(TextFullSerializer.java:
36)
at
com.ibm.jaql.io.serialization.text.schema.RecordSerializer.write(RecordSerializer.java:
108)
at
com.ibm.jaql.io.serialization.text.schema.RecordSerializer.write(RecordSerializer.java:
33)
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer.write(SchemaTextFullSerializer.java:
96)
at
com.ibm.jaql.io.serialization.text.schema.ArraySerializer.write(ArraySerializer.java:
74)
... 17 more

Thanks,
- Iris

Iris Eiron

unread,
Sep 20, 2010, 5:47:20 AM9/20/10
to Jaql Users
I think this exception has to do with the fact that $popularDocIDs was
materialized. Please see the following exception when the first
statement succeed, and the second statement which uses a materialized
variable fails with the same IllegalArgumentException

# successful execution
jaql> join $docs, $relations where $docs.docid == $relations.docid
into {$relations.*} -> group by docid=$.docid into {docid, N:
count($)} -> top 10 by [$.N desc];
[
{
"docid": 1745119925,
"N": 2
},
{
"docid": 1745321350,
"N": 2
},
{
"docid": 1745519229,
"N": 2
},
{
"docid": 1746309602,
"N": 2
},
{
"docid": 1756177636,
"N": 2
},
{
"docid": 1756459099,
"N": 2
},
{
"docid": 1761047532,
"N": 2
},
{
"docid": 1761177742,
"N": 2
},
{
"docid": 1764934260,
"N": 2
},
{
"docid": 1765026381,
"N": 2
}
]

## Same sequence fails when using a materialized variable !!! #
jaql> $popularDocIDs = join $docs, $relations where $docs.docid ==
$relations.docid into {$relations.*} -> group by docid=$.docid into
{docid, N: count($)};

jaql> materialize $popularDocIDs;
"$popularDocIDs"

jaql> $popularDocIDs-> top 10 by [$.N desc];
[
{
"N": java.lang.IllegalArgumentException: value not matched by this
serializer
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer
$DefaultBasicSerializer.write(SchemaTextFullSerializer.java:175)
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer.write(SchemaTextFullSerializer.java:
96)
at
com.ibm.jaql.io.serialization.text.TextFullSerializer.write(TextFullSerializer.java:
36)
at
com.ibm.jaql.io.serialization.text.schema.RecordSerializer.write(RecordSerializer.java:
108)
at
com.ibm.jaql.io.serialization.text.schema.RecordSerializer.write(RecordSerializer.java:
33)
at
com.ibm.jaql.io.serialization.text.schema.SchemaTextFullSerializer.write(SchemaTextFullSerializer.java:
96)
at com.ibm.jaql.json.util.JsonIterator.print(JsonIterator.java:
250)
at com.ibm.jaql.lang.StreamPrinter.print(StreamPrinter.java:
59)
at com.ibm.jaql.lang.Jaql.run(Jaql.java:561)
at com.ibm.jaql.lang.Jaql.run(Jaql.java:95)
at
com.ibm.jaql.util.shell.AbstractJaqlShell.run(AbstractJaqlShell.java:
54)
at
com.ibm.jaql.util.shell.AbstractJaqlShell.main(AbstractJaqlShell.java:
100)
at JaqlShell.main(JaqlShell.java:322)




Reply all
Reply to author
Forward
0 new messages