Repository: kubeflow/pipelines

Issue:
[bug] pipeline parameters in google_cloud_pipeline_components.aiplatform.TabularCreateDatasetOp
### What steps did you take
Create a simple pipeline that tries to create a tabular dataset from a bigquery table.

```
@dsl.pipeline(
    name='train-churn',
    pipeline_root='gs://blah/test1'
)
def pipeline(project_id: str, dataset_id: str, table_id: str):
    query = dedent(f""" 
    <query elided>
    """)
     
    query_done = bigquery_query_op(
        query=query,
        project_id=project_id,
        dataset_id=dataset_id,
        table_id=table_id,
        dataset_location='us'
    )
    
    # todo bq op unfortunately returns nothing. so we compose our own coordinates for dataset creation
    
    bq_source_rendered = f'bq://{str(project_id)}.{str(dataset_id)}.{str(table_id)}'
       
    dataset = gcc.aiplatform.TabularDatasetCreateOp(
        display_name='test_name_1',
        bq_source=bq_source_rendered
    )
    
    dataset.after(query_done)

   <.... rest of pipeline .... >
```

### What happened:
gcp error log:
```
"__main__", mod_spec)
 File "/opt/python3.7/lib/python3.7/runpy.py", line 85, in _run_code
 exec(code, run_globals)
File "/opt/python3.7/lib/python3.7/site-packages/google_cloud_pipeline_components/aiplatform/remote_runner.py", line 284, in <module>
main()
File "/opt/python3.7/lib/python3.7/site-packages/google_cloud_pipeline_components/aiplatform/remote_runner.py", line 268, in main
key, value = arg[2:].split("=")
ValueError: too many values to unpack (expected 2)
```

AI platform runner does not parse and unpack the parameters correctly, fails on dataset creation.

### What did you expect to happen:
Pipeline should complete.

### Environment:
KFP v2 using vertex. (locally compiled pipeline)

*  KFP SDK version: 
```
kfp                              1.6.5
kfp-pipeline-spec                0.1.8
kfp-server-api                   1.6.0
```


### Anything else you would like to add:
<!-- Miscellaneous information that will assist in solving the issue.-->


### Labels
<!-- Please include labels below by uncommenting them to help us better triage issues -->

<!-- /area frontend -->
<!-- /area backend -->
/area sdk
<!-- /area testing -->
<!-- /area samples -->
 /area components 


---

<!-- Don't delete message below to encourage users to support your issue! -->
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.



Discussion:
/assign @IronPan @SinaChavoshi 
Good find, seems like we are splitting on "=" instead of splitting on the first instance of '=' and taking the remaining argument as the input query string. Marking as P0 as directly query is broken with this issue. 

Resolving patch:
diff --git a/components/google-cloud/google_cloud_pipeline_components/remote/aiplatform/remote_runner.py b/components/google-cloud/google_cloud_pipeline_components/remote/aiplatform/remote_runner.py
--- a/components/google-cloud/google_cloud_pipeline_components/remote/aiplatform/remote_runner.py
+++ b/components/google-cloud/google_cloud_pipeline_components/remote/aiplatform/remote_runner.py
@@ -265,7 +265,7 @@ def main():
         arg = arg.strip()
 
         if "=" in arg:
-            key, value = arg[2:].split("=")
+            key, value = arg[2:].split("=", 1)
             kwargs[key] = value
         else:
             if not key_value:


Test patch: