[
https://issues.apache.org/jira/browse/DRILL-24?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575209#comment-13575209
]
Jacques Nadeau commented on DRILL-24:
-------------------------------------
There is distinction between dag stitching (@id/input pairs) and data namespace
(ref's). For id/input pairs, the values must be numeric.
Here is an updated version that should theoretically work. Remember, you have
to expressly connect @id and inputs anywhere other than a sequence. Since you
are not using a sequence in this plan at all, you need to stitch everything
together.
{
head: {
type: "apache_drill_logical_plan",
version: "1",
generator: {
type: "manual",
info: "na"
}
},
sources: [
{
type: "json",
name: "donuts-json",
files: [
"src/test/resources/donuts.json"
]
}
],
query: [
{
@id: 1,
op: "scan",
memo: "initial_scan",
ref: "donuts",
source: "donuts-json",
selection: {
data: "activity"
}
},
{
@id: 2,
op: "scan",
memo: "second_scan",
ref: "donuts_2",
source: "donuts-json",
selection: {
data: "activity"
}
},
{
@id: 3,
op: "join",
left: 1,
right: 2,
type: "left",
conditions: [
{
relationship: "equals",
left: "donuts.sales",
right: "donuts_2.sales"
}
]
},
{
input: 4,
op: "write",
memo: "output sink",
file: "console: ///stdout"
}
]
}
> Implement Join Reference Operator
> ---------------------------------
>
> Key: DRILL-24
> URL: https://issues.apache.org/jira/browse/DRILL-24
> Project: Apache Drill
> Issue Type: New Feature
> Reporter: Timothy Chen
> Assignee: Timothy Chen
> Labels: logical
>
> Join (M)
> Joins two inputs based on one or more join conditions. The output of this
> operator is the combination of the two inputs. This is done by providing a
> combination record of each set of input records that matches all provided
> join conditions. In the case that no conditions are provided, a cartesian
> join is generated. The combination record is a single record that contains a
> merged map of values from both provided input records. For example, if the
> left record is {donuts: [data]} and the right is {purchases: [data]}, the
> combination record would be {donuts: [data], purchases: [data]}. Join also
> requires a condition type variable which. This describes what happens when a
> record doesn’t match the join conditions. Inner means only records that
> match the join conditions should be included. Outer means if a record is
> Avaiable relationship types ‘Reltypes’ include: >, >=, <=, <, !=, ==
> { @id†: <opref>, op: “join”,
> left: <input>,
> right: <input>,
> type: <inner|outer|right|left>,
> conditions*: [
> {relationship: <reltype>, left: <expr>, right: <expr>}, ...
> ]
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira