class OrcFileFormat extends FileFormat with DataSourceRegister with Serializable
New ORC File Format based on Apache ORC.
- Alphabetic
- By Inheritance
- OrcFileFormat
- Serializable
- DataSourceRegister
- FileFormat
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new OrcFileFormat()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def buildReader(sparkSession: SparkSession, dataSchema: StructType, partitionSchema: StructType, requiredSchema: StructType, filters: Seq[Filter], options: Map[String, String], hadoopConf: Configuration): (PartitionedFile) => Iterator[InternalRow]
Returns a function that can be used to read a single file in as an Iterator of InternalRow.
Returns a function that can be used to read a single file in as an Iterator of InternalRow.
- dataSchema
The global data schema. It can be either specified by the user, or reconciled/merged from all underlying data files. If any partition columns are contained in the files, they are preserved in this schema.
- partitionSchema
The schema of the partition column row that will be present in each PartitionedFile. These columns should be appended to the rows that are produced by the iterator.
- requiredSchema
The schema of the data that should be output for each row. This may be a subset of the columns that are present in the file if column pruning has occurred.
- filters
A set of filters than can optionally be used to reduce the number of rows output
- options
A set of string -> string configuration options.
- Attributes
- protected
- Definition Classes
- FileFormat
- def buildReaderWithPartitionValues(sparkSession: SparkSession, dataSchema: StructType, partitionSchema: StructType, requiredSchema: StructType, filters: Seq[Filter], options: Map[String, String], hadoopConf: Configuration): (PartitionedFile) => Iterator[InternalRow]
Build the reader.
Build the reader.
- Definition Classes
- OrcFileFormat → FileFormat
- Note
It is required to pass FileFormat.OPTION_RETURNING_BATCH in options, to indicate whether the reader should return row or columnar output. If the caller can handle both, pass FileFormat.OPTION_RETURNING_BATCH -> supportBatch(sparkSession, StructType(requiredSchema.fields ++ partitionSchema.fields)) as the option. It should be set to "true" only if this reader can support it.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def createFileMetadataCol(): AttributeReference
Create a file metadata struct column containing fields supported by the given file format.
Create a file metadata struct column containing fields supported by the given file format.
- Definition Classes
- FileFormat
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(other: Any): Boolean
- Definition Classes
- OrcFileFormat → AnyRef → Any
- def fileConstantMetadataExtractors: Map[String, (PartitionedFile) => Any]
The extractors to use when deriving file-constant metadata columns for this file format.
The extractors to use when deriving file-constant metadata columns for this file format.
Implementations that define custom constant metadata columns can override this method to associate a custom extractor with a given metadata column name, when a simple name-based lookup in PartitionedFile.extraConstantMetadataColumnValues is not expressive enough; extractors have access to the entire PartitionedFile and can perform arbitrary computations.
NOTE: Extractors are lazy, invoked only if the query actually selects their column at runtime.
- Definition Classes
- FileFormat
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- OrcFileFormat → AnyRef → Any
- def inferSchema(sparkSession: SparkSession, options: Map[String, String], files: Seq[FileStatus]): Option[StructType]
When possible, this method should return the schema of the given
files.When possible, this method should return the schema of the given
files. When the format does not support inference, or no valid files are given should return None. In these cases Spark will require that user specify the schema manually.- Definition Classes
- OrcFileFormat → FileFormat
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isSplitable(sparkSession: SparkSession, options: Map[String, String], path: Path): Boolean
Returns whether a file with
pathcould be split or not.Returns whether a file with
pathcould be split or not.- Definition Classes
- OrcFileFormat → FileFormat
- def metadataSchemaFields: Seq[StructField]
All fields the file format's _metadata struct defines.
All fields the file format's _metadata struct defines.
Each metadata struct field is either "constant" or "generated" (respectively defined/matched by FileSourceConstantMetadataStructField or FileSourceGeneratedMetadataAttribute).
Constant metadata columns are derived from the PartitionedFile instances a scan's FileIndex provides. Thus, a custom FileFormat that defines constant metadata columns will generally pair with a a custom FileIndex that populates PartitionedFile with appropriate metadata values. By default, constant attribute values are obtained by a simple name-based lookup in PartitionedFile.extraConstantMetadataColumnValues, but implementations can override fileConstantMetadataExtractors to define custom extractors that have access to the entire PartitionedFile when deriving the column's value.
Generated metadata columns map to a hidden/internal column the underlying reader provides, and so will often pair with a custom reader that can populate those columns. For example, ParquetFileFormat defines a "_metadata.row_index" column that relies on VectorizedParquetRecordReader to extract the actual row index values from the parquet scan.
- Definition Classes
- FileFormat
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def prepareWrite(sparkSession: SparkSession, job: Job, options: Map[String, String], dataSchema: StructType): OutputWriterFactory
Prepares a write job and returns an OutputWriterFactory.
Prepares a write job and returns an OutputWriterFactory. Client side job preparation can be put here. For example, user defined output committer can be configured here by setting the output committer class in the conf of spark.sql.sources.outputCommitterClass.
- Definition Classes
- OrcFileFormat → FileFormat
- def shortName(): String
The string that represents the format that this data source provider uses.
The string that represents the format that this data source provider uses. This is overridden by children to provide a nice alias for the data source. For example:
override def shortName(): String = "parquet"
- Definition Classes
- OrcFileFormat → DataSourceRegister
- Since
1.5.0
- def supportBatch(sparkSession: SparkSession, schema: StructType): Boolean
Returns whether this format supports returning columnar batch or not.
Returns whether this format supports returning columnar batch or not. If columnar batch output is requested, users shall supply FileFormat.OPTION_RETURNING_BATCH -> true in relation options when calling buildReaderWithPartitionValues. This should only be passed as true if it can actually be supported. For ParquetFileFormat and OrcFileFormat, passing this option is required.
TODO: we should just have different traits for the different formats.
- Definition Classes
- OrcFileFormat → FileFormat
- def supportDataType(dataType: DataType): Boolean
Returns whether this format supports the given DataType in read/write path.
Returns whether this format supports the given DataType in read/write path. By default all data types are supported.
- Definition Classes
- OrcFileFormat → FileFormat
- def supportFieldName(name: String): Boolean
Returns whether this format supports the given filed name in read/write path.
Returns whether this format supports the given filed name in read/write path. By default all field name is supported.
- Definition Classes
- FileFormat
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- OrcFileFormat → AnyRef → Any
- def vectorTypes(requiredSchema: StructType, partitionSchema: StructType, sqlConf: SQLConf): Option[Seq[String]]
Returns concrete column vector class names for each column to be used in a columnar batch if this format supports returning columnar batch.
Returns concrete column vector class names for each column to be used in a columnar batch if this format supports returning columnar batch.
- Definition Classes
- FileFormat
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()