java.lang.Object
org.apache.flink.api.common.typeutils.TypeSerializer<T>
org.apache.flink.api.common.typeutils.base.TypeSerializerSingleton<String>
org.apache.flink.table.runtime.typeutils.serializers.python.StringSerializer
All Implemented Interfaces:
Serializable

@Internal public class StringSerializer extends org.apache.flink.api.common.typeutils.base.TypeSerializerSingleton<String>
We create the StringSerializer instead of using the StringSerializer of flink-core module because the StringSerializer of flink-core module serialize every Char of String in serialize method and deserialize the Char to build the String. We want to convert String to UTF-8 bytes to serialize which is compatible with BinaryStringSerializer.

So we create this StringSerializer (only used in Java and Python data communication in udf).

StringSerializer for String.

See Also:
  • Field Details

  • Constructor Details

    • StringSerializer

      public StringSerializer()
  • Method Details

    • isImmutableType

      public boolean isImmutableType()
      Specified by:
      isImmutableType in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
    • createInstance

      public String createInstance()
      Specified by:
      createInstance in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
    • copy

      public String copy(String from)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
    • copy

      public String copy(String from, String reuse)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
    • getLength

      public int getLength()
      Specified by:
      getLength in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
    • serialize

      public void serialize(String record, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      serialize in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
      Throws:
      IOException
    • deserialize

      public String deserialize(org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
      Throws:
      IOException
    • deserialize

      public String deserialize(String reuse, org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
      Throws:
      IOException
    • copy

      public void copy(org.apache.flink.core.memory.DataInputView source, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<String>
      Throws:
      IOException
    • snapshotConfiguration

      public org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<String> snapshotConfiguration()
      Specified by:
      snapshotConfiguration in class org.apache.flink.api.common.typeutils.TypeSerializer<String>