

def main():
    flow = Flow()
    lhs = flow.source(Hfs(TextDelimited(Fields(['col1', 'col2']), ' ', [Integer, String]), 'pycascading_data/lhs.txt'))
    rhs = flow.source(Hfs(TextDelimited(Fields(['col1', 'col2']), ' ', [Integer, String]), 'pycascading_data/rhs.txt'))
    output1 = flow.tsv_sink('pycascading_data/out1')
    output2 = flow.tsv_sink('pycascading_data/out2')
    p = ((lhs & output1) | inner_join(['col1', 'col1'], declared_fields=['lhs1', 'lhs2', 'rhs1', 'rhs2']))
    ((p | retain('lhs2', 'rhs2')) | output1)
    ((((p | upper_case) & (rhs | retain('col2'))) | inner_join(['ucase_lhs2', 'col2'])) | output2)
    flow.run(num_reducers=2)

dataset/ETHPy150Open twitter/pycascading/examples/joins.py main/VarMisuse@103/173 `rhs`->`output1`