////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:documentationPath: /pipeline/transforms/
:language: en_US
:description: The Join Rows transform allows you to produce combinations (Cartesian product) of all rows in the input streams.

= image:transforms/icons/joinrows.svg[Join Rows transform Icon, role="image-doc-icon"] Join Rows

[%noheader,cols="3a,1a", role="table-no-borders" ]
|===
|
== Description

The Join Rows (cartesian product) transform allows you to combine/join multiple input streams (https://en.wikipedia.org/wiki/Cartesian_product[Cartesian product^]) without joining on keys. It works best with one row from each stream. You can add a  condition to only join when a condition is met.
|
== Supported Engines
[%noheader,cols="2,1a",frame=none, role="table-supported-engines"]
!===
!Hop Engine! image:check_mark.svg[Supported, 24]
!Spark! image:question_mark.svg[Maybe Supported, 24]
!Flink! image:question_mark.svg[Maybe Supported, 24]
!Dataflow! image:question_mark.svg[Maybe Supported, 24]
!===
|===

== Options

[options="header"]
|===
|Option|Description
|Transform name|Name of the transform this name has to be unique in a single pipeline.
|Temp directory|Specify the name of the directory where the system stores temporary files in case you want to combine more then the cached number of rows.
|TMP-file prefix|This is the prefix of the temporary files that will be generated.
|Max. cache size|The number of rows to cache before the system reads data from temporary files; required when you want to combine large row sets that do not fit into memory.
|Main transform to read from|Specifies the transform from which to read most of the data; while the data from other transforms are cached or spooled to disk, the data from this transform is not.
|The Condition(s)|You can enter a complex condition to limit the number of output row.
|===
