Functions:
Item Description
ARRAYSTOMAP Function
Combines one array containing keys and another array containing values into an Object of key-value pairs.
KEYS Function
Extracts the key values from an Object data type column and stores them in an array of String values.
Source:
Your dataset contains master product data with product properties stored in two arrays of keys and values.
ProdId | ProdCategory | ProdName | ProdKeys | ProdProperties |
---|---|---|---|---|
S001 | Shirts | Crew Neck T-Shirt | ["type", "color", "fabric", "sizes"] | ["crew","blue","cotton","S,M,L","in stock","padded"] |
S002 | Shirts | V-Neck T-Shirt | ["type", "color", "fabric", "sizes"] | ["v-neck","white","blend","S,M,L,XL","in stock","discount - seasonal"] |
S003 | Shirts | Tanktop | ["type", "color", "fabric", "sizes"] | ["tank","red","mesh","XS,S,M","discount - clearance","in stock"] |
S004 | Shirts | Turtleneck | ["type", "color", "fabric", "sizes"] | ["turtle","black","cotton","M,L,XL","out of stock","padded"] |
Transformation:
When the above data is loaded into the Transformer page, you might need to clean up the two array columns.
Using the following transform, you can map the first element of the first array as a key for the first element of the second, which is its value. You might notice that the number of keys and the number of values are not consistent. For the extra elements in the second array, the default key of ProdMiscProperties
is used:
Transformation Name | New formula |
---|---|
Parameter: Formula type | Single row formula |
Parameter: Formula | ARRAYSTOMAP(ProdProperties, ProdValues, 'ProdMiscProperties') |
Parameter: New column name | 'prodPropertyMap' |
You can now use the following steps to generate a new version of the keys:
Transformation Name | Delete columns |
---|---|
Parameter: Columns | ProdKeys |
Parameter: Action | Delete selected columns |
Transformation Name | New formula |
---|---|
Parameter: Formula type | Single row formula |
Parameter: Formula | KEYS(prodPropertyMap) |
Parameter: New column name | 'ProdKeys' |
Results:
ProdId | ProdCategory | ProdName | ProdKeys | ProdProperties | prodPropertyMap |
---|---|---|---|---|---|
S001 | Shirts | Crew Neck T-Shirt | ["type", "color", "fabric", "sizes","ProdMiscProperties"] | ["crew","blue","cotton","S,M,L","in stock","padded"] | {
"type": [ "crew" ],
"color": [ "blue" ],
"fabric": [ "cotton" ],
"sizes": [ "S,M,L" ],
"ProdMiscProperties": [ "in stock", "padded" ] } |
S002 | Shirts | V-Neck T-Shirt | ["type", "color", "fabric", "sizes","ProdMiscProperties"] | ["v-neck","white","blend","S,M,L,XL","in stock","discount - seasonal"] | {
"type": [ "v-neck" ],
"color": [ "white" ],
"fabric": [ "blend" ],
"sizes": [ "S,M,L,XL" ],
"ProdMiscProperties": [ "in stock", "discount - seasonal" ] } |
S003 | Shirts | Tanktop | ["type", "color", "fabric", "sizes","ProdMiscProperties"] | ["tank","red","mesh","XS,S,M","discount - clearance","in stock"] | {
"type": [ "tank" ],
"color": [ "red" ],
"fabric": [ "mesh" ],
"sizes": [ "XS,S,M" ],
"ProdMiscProperties": [ "discount - clearance", "in stock" ] } |
S004 | Shirts | Turtleneck | ["type", "color", "fabric", "sizes","ProdMiscProperties"] | ["turtle","black","cotton","M,L,XL","out of stock","padded"] | {
"type": [ "turtle" ],
"color": [ "black" ],
"fabric": [ "cotton" ],
"sizes": [ "M,L,XL" ],
"ProdMiscProperties": [ "out of stock", "padded" ] } |
This page has no comments.