# Array cartesian product > Supported in: Batch, Streaming Compute the cartesian product of arrays. **Expression categories:** Array ## Declared arguments * **Expression:** Column to convert base.
*List\>>* **Output type:** *Array\* ## Examples ### Example 1: Base case **Argument values:** * **Expression:** \[`first`, `second`] | first | second | **Output** | | ----- | ----- | ----- | | \[ \[ {
 **s1**: 1,
}, {
 **s1**: 2,
} ], \[ {
 **s1**: 3,
} ] ] | \[ \[ {
 **s2**: 4,
}, {
 **s2**: 5,
} ], \[ {
 **s2**: 6,
} ] ] | \[ {
 **first**: \[ {
 **s1**: 1,
}, {
 **s1**: 2,
} ],
 \*\*secon... | *** ### Example 2: Base case **Argument values:** * **Expression:** \[`first`, `second`] | first | second | **Output** | | ----- | ----- | ----- | | \[ 1, 2 ] | \[ 3, 4 ] | \[ {
 **first**: 1,
 **second**: 3,
}, {
 **first**: 1,
 \**second*... | *** ### Example 3: Base case **Argument values:** * **Expression:** \[`first`, `second`, `third`] | first | second | third | **Output** | | ----- | ----- | ----- | ----- | | \[ 1, 2 ] | \[ word, a ] | \[ {
 **s1**: 1,
}, {
 **s1**: 2,
} ] | \[ {
 **first**: 1,
 **second**: word,
 **third**: {
 **s1**: 1,
}... | *** ### Example 4: Null case **Argument values:** * **Expression:** \[`first`, `second`] | first | second | **Output** | | ----- | ----- | ----- | | \[ 1, *null* ] | \[ *null*, 4 ] | \[ {
 **first**: 1,
 **second**: *null*,
}, {
 **first**: 1,
 \*\*se... | | \[ 1, 2 ] | *null* | \[ ] | | \[ ] | \[ ] | \[ ] | | *null* | *null* | \[ ] | ***