Spark StringType vs DataTypes.StringType - PullRequest
       3

Spark StringType vs DataTypes.StringType

0 голосов
/ 17 марта 2020

StringType in spark SQL:

/**
 * The data type representing `String` values. Please use the singleton `DataTypes.StringType`.
 *
 * @since 1.3.0
 */
class StringType private() extends AtomicType {
  // The companion object and this class is separated so the companion object also subclasses
  // this type. Otherwise, the companion object would be of type "StringType$" in byte code.
  // Defined with a private constructor so the companion object is the only possible instantiation.
  private[sql] type InternalType = UTF8String
  @transient private[sql] lazy val tag = ScalaReflectionLock.synchronized { typeTag[InternalType] }
  private[sql] val ordering = implicitly[Ordering[InternalType]]

   ...
}


case object StringType extends StringType

рекомендует использовать типы данных:

/**
 * To get/create specific data type, users should use singleton objects and factory methods
 * provided by this class.
 *
 */
    public class DataTypes {
      /**
       * Gets the StringType object.
       */
      public static final DataType StringType = StringType$.MODULE$;
  1. зачем использовать DataTypes.StringType, поскольку StringType сам по себе является одиночным?
  2. что означает «объект-компаньон и этот класс отделены»?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...