[
https://issues.apache.org/jira/browse/FLINK-18488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17151553#comment-17151553
]
Chris Nix commented on FLINK-18488:
-----------------------------------
One option to fix this might be to add keyword params to the Python constructor
and use the Java CsvTableSource.Builder to add those kwargs that are defined.
For example:
{code:python}
def __init__(
self,
source_path,
field_names,
field_types,
field_delim=None,
line_delim=None,
quote_character=None,
ignore_first_line=None,
ignore_comments=None,
lenient=None,
):
gateway = get_gateway()
builder = gateway.jvm.CsvTableSource.builder()
builder.path(source_path)
for (field_name, field_type) in zip(field_names, field_types):
builder.field(field_name, _to_java_type(field_type))
if field_delim is not None:
builder.fieldDelimiter(field_delim)
if line_delim is not None:
builder.lineDelimiter(line_delim)
if quote_character is not None:
builder.quoteCharacter(quote_character)
if ignore_first_line:
builder.ignoreFirstLine()
if ignore_comments is not None:
builder.commentPrefix(ignore_comments)
if lenient:
builder.ignoreParseErrors()
super(CsvTableSource, self).__init__(builder.build())
{code}
This way it'd maintain all the defaults defined in Java side, without
redefining them on the Python side. As is, it would omit the Java
{{selectedFields}} param, for which there isn't a corresponding builder
function.
> Python API CsvTableSource missing optional constructor params
> -------------------------------------------------------------
>
> Key: FLINK-18488
> URL: https://issues.apache.org/jira/browse/FLINK-18488
> Project: Flink
> Issue Type: Improvement
> Components: API / Python
> Reporter: Chris Nix
> Priority: Minor
>
> CsvTableSource exists in the Python API, however the Python constructor is
> missing the optional params available in the overloaded constructors from the
> Java/Scala APIs. Here's links to the docs:
> *
> [https://ci.apache.org/projects/flink/flink-docs-master/api/python/pyflink.table.html#pyflink.table.CsvTableSource]
> *
> [https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/table/sources/CsvTableSource.html]
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)