Skip to content

Commit a56134d

Browse files
wchan87dianfu
authored andcommitted
[FLINK-38797][python] Fixed CsvSchemaBuilder.set_null_value to return self
This closes #27331.
1 parent 7ba9741 commit a56134d

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

flink-python/pyflink/datastream/formats/csv.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ def set_null_value(self, null_value: str):
237237
Set literal for null value, default to empty sequence.
238238
"""
239239
self._j_schema_builder.setNullValue(null_value)
240+
return self
240241

241242
def disable_quote_char(self):
242243
"""

flink-python/pyflink/datastream/formats/tests/test_csv.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ def test_csv_strict_headers(self):
7777
self.env.execute('test_csv_strict_headers')
7878
_check_csv_strict_headers_results(self, self.test_sink.get_results(True, False))
7979

80+
def test_csv_default_null_value(self):
81+
schema, lines = _create_csv_default_null_value_schema_and_lines()
82+
self._build_csv_job(schema, lines)
83+
self.env.execute('test_csv_default_null_value')
84+
_check_csv_default_null_value_results(self, self.test_sink.get_results(True, False))
85+
8086
def test_csv_default_quote_char(self):
8187
schema, lines = _create_csv_default_quote_char_schema_and_lines()
8288
self._build_csv_job(schema, lines)
@@ -344,6 +350,24 @@ def _check_csv_use_header_results(test, results):
344350
test.assertEqual(row['number'], 123)
345351

346352

353+
def _create_csv_default_null_value_schema_and_lines() -> Tuple[CsvSchema, List[str]]:
354+
schema = CsvSchema.builder() \
355+
.add_string_column('string') \
356+
.add_number_column('number') \
357+
.set_null_value('') \
358+
.build()
359+
lines = [
360+
',123\n'
361+
]
362+
return schema, lines
363+
364+
365+
def _check_csv_default_null_value_results(test, results):
366+
row = results[0]
367+
test.assertEqual(row['string'], None)
368+
test.assertEqual(row['number'], 123)
369+
370+
347371
def _create_csv_strict_headers_schema_and_lines() -> Tuple[CsvSchema, List[str]]:
348372
schema = CsvSchema.builder() \
349373
.add_string_column('string') \

0 commit comments

Comments
 (0)