Hi all,
I am looking for a simple Denormalizer example using CTL. Please don't point me to the Users guide or Wiki. I have already been to both places. What I am trying to do is fairly simple but I keep getting:
Message: Denormalization failed! caused by: java.lang.ArrayIndexOutOfBoundsException: 0
Thanks
pro7
I am looking for a simple Denormalizer example using CTL. Please don't point me to the Users guide or Wiki. I have already been to both places. What I am trying to do is fairly simple but I keep getting:
Message: Denormalization failed! caused by: java.lang.ArrayIndexOutOfBoundsException: 0
Thanks
pro7
-
Hi pro7,
It looks like bug in Clover, but you didn't provide me enough information to advise you. Please send me:
* version of clover
* your graph (possibly simplified, privacy detail removed, ...)
* sample of data
Then I can reproduce and solve your problem. -
Thanks.
We are running 3.0. Probably not a bug. Most likely my misunderstanding. A simple example below.
Restaurant Rated
Name Category Score
Daniel Cost A
Daniel Service B
Daniel Food A+
Blue Hill Cost B-
Blue Hill Service A
Blue Hill Food B
Blue Hill Parking C
Antonio's Cost A
Antonio's Service B
Antonio's Food A-
Now let's say we are looking for a result like :
Daniel | A | B | A+
Blue Hill | B- | A | B | C
Antonio's | A | B | A-
Is Normalizer a correct choice for this type of transformation?
If I understand correctly, we need to implement, at a minimum, a count() function, and a transform() function. What might they look like for the above example?
Thank You
pro7 -
Sorry...I meant to say "Is Denormalizer a correct choice for this type of transformation?" -
Hi pro7,
yes, denormalizer is good component for this. See attached sample I created.
It produces:
INFO [TRASH0_0] - +-------+------------+-------+----------+-------+----------+
INFO [TRASH0_0] - |Record |name |Cost |Service |Food |Parking |
INFO [TRASH0_0] - +-------+------------+-------+----------+-------+----------+
INFO [TRASH0_0] - |# 1 |Antonio's |A |B |A- | |
INFO [TRASH0_0] - |# 2 |Blue Hill |B- |A |B |C |
INFO [TRASH0_0] - |# 3 |Daniel |A |B |A+ | |
INFO [TRASH0_0] - +-------+------------+-------+----------+-------+----------+ -
Thank you. I'll study in detail but I'm wondering if the sample is using some feature not supported in my release (3.0)?
I say this because when I open the graph I see errors.
Unable to resolve input metadata 'in'
Unable to resolve input metadata 'out'
The sample has a Metadata named Result, and another named to_normalize_txt. I can change $in to $to_normalize_txt but I still get an error on the line
of code in transform:
$out.0.* = res.*;
I tried a number of things here but can't get rid of the error. Anyway, thanks again, this might be enough to get me going in the right direction.
pro7 -
For 3.0 you need to change CTL2 transformation to:
//#CTL2
Result res;
function integer append() {
//set name
res.name = $0.Name;
if ($0.Type=="Cost") {
res.Cost = $0.Rate;
} else if ($0.Type=="Service") {
res.Service = $0.Rate;
} else if ($0.Type=="Food") {
res.Food = $0.Rate;
} else if ($0.Type=="Parking") {
res.Parking = $0.Rate;
} else {
raiseError("Unknown type '"+$0.Type+"'");
}
return OK;
}
function integer transform() {
//send prepared record to output
$0.* = res.*;
return OK;
}
function void clean() {
res.name = "";
res.Cost = "";
res.Service = "";
res.Food = "";
res.Parking = "";
}
Please sign in to leave a comment.
Comments 6