[ 
https://issues.apache.org/jira/browse/FLINK-40199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-40199:
-----------------------------------
    Labels: pull-request-available  (was: )

> Add generic connector source and sink APIs to PyFlink DataFrame
> ---------------------------------------------------------------
>
>                 Key: FLINK-40199
>                 URL: https://issues.apache.org/jira/browse/FLINK-40199
>             Project: Flink
>          Issue Type: Sub-task
>          Components: API / Python
>            Reporter: Dian Fu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.4.0
>
>
> def read_generic(
>     connector: str,
>     *,
>     schema: Dict[str, DataType],
>     options: Dict[str, str]
> ) -> DataFrame
> def DataFrame.write_generic(
>     self,
>     connector: str,
>     *,
>     options: Dict[str, str]
> ) -> None
> These generic APIs are escape hatches for connectors that do not need a 
> dedicated Python helper or for advanced connector options. Other 
> connector-specific APIs will follow the same design: expose typed and 
> convenient Python parameters for commonly used connector and format options, 
> keep connector-specific options aligned with the corresponding Flink 
> connector and format options, and provide read_generic() / write_generic() 
> for less common connectors or advanced options.
> Example:
> orders = pf.read_generic(
>     "filesystem",
>     schema={
>         "order_id": DataType.string(),
>         "amount": DataType.float64(),
>     },
>     options={
>           "path": "s3:///warehouse/orders/",
>           "format": "json",
>           "json.ignore-parse-errors": "true"
>     }
> )
> orders.write_generic(
>     "filesystem",
>     options={
>         "path": "s3:///warehouse/filtered-orders/",
>         "sink.rolling-policy.file-size": "128mb",
>         "format": "json"
>     }
> )



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to