class_docstr: The :class:`~StreamFormat` for reading csv files.
  
  Example:
  ::
  
      >>> schema = CsvSchema.builder() \
      ...     .add_number_column('id', number_type=DataTypes.INT()) \
      ...     .add_string_column('name') \
      ...     .add_array_column('list', ',', element_type=DataTypes.STRING()) \
      ...     .set_column_separator('|') \
      ...     .set_escape_char('\\') \
      ...     .set_use_header() \
      ...     .set_strict_headers() \
      ...     .build()
      >>> source = FileSource.for_record_stream_format(
      ...     CsvReaderFormat.for_schema(schema), CSV_FILE_PATH).build()
      >>> ds = env.from_source(source, WatermarkStrategy.no_watermarks(), 'csv-source')
      >>> # the type of records is Types.ROW_NAMED(['id', 'name', 'list'],
      >>> #   [Types.INT(), Types.STRING(), Types.LIST(Types.STRING())])
  
  .. versionadded:: 1.16.0
code: def __init__(self, j_csv_format):
      super().__init__(j_csv_format)
  
imports: from typing import Optional, TYPE_CHECKING
  from pyflink.common.serialization import BulkWriterFactory, RowDataBulkWriterFactory, SerializationSchema, DeserializationSchema
  from pyflink.common.typeinfo import TypeInformation
  from pyflink.datastream.connectors.file_system import StreamFormat
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 1 to create a new CsvReaderFormat object from inherited base classes: StreamFormat with example: obj = CsvReaderFormat(j_csv_format)