case class XmlFileDataObject(id: DataObjectId, path: String, rowTag: Option[String] = None, xmlOptions: Option[Map[String, String]] = None, partitions: Seq[String] = Seq(), schema: Option[StructType] = None, schemaMin: Option[StructType] = None, saveMode: SDLSaveMode = SDLSaveMode.Overwrite, sparkRepartition: Option[SparkRepartitionDef] = None, flatten: Boolean = false, acl: Option[AclDef] = None, connectionId: Option[ConnectionId] = None, filenameColumn: Option[String] = None, expectedPartitionsCondition: Option[String] = None, housekeepingMode: Option[HousekeepingMode] = None, metadata: Option[DataObjectMetadata] = None)(implicit instanceRegistry: InstanceRegistry) extends SparkFileDataObject with CanCreateDataFrame with CanWriteDataFrame with Product with Serializable

A io.smartdatalake.workflow.dataobject.DataObject backed by an XML data source.

It manages read and write access and configurations required for io.smartdatalake.workflow.action.Actions to work on XML formatted files.

Reading and writing details are delegated to Apache Spark org.apache.spark.sql.DataFrameReader and org.apache.spark.sql.DataFrameWriter respectively. The reader and writer implementations are provided by the databricks spark-xml project. Note that writing XML-file partitioned is not supported by spark-xml.

xmlOptions

Settings for the underlying org.apache.spark.sql.DataFrameReader and org.apache.spark.sql.DataFrameWriter.

schema

An optional data object schema. If defined, any automatic schema inference is avoided. As this corresponds to the schema on write, it must not include the optional filenameColumn on read.

sparkRepartition

Optional definition of repartition operation before writing DataFrame with Spark to Hadoop.

expectedPartitionsCondition

Optional definition of partitions expected to exist. Define a Spark SQL expression that is evaluated against a PartitionValues instance and returns true or false Default is to expect all partitions to exist.

housekeepingMode

Optional definition of a housekeeping mode applied after every write. E.g. it can be used to cleanup, archive and compact partitions. See HousekeepingMode for available implementations. Default is None.

Annotations
@Scaladoc()
See also

org.apache.spark.sql.DataFrameReader

org.apache.spark.sql.DataFrameWriter

Linear Supertypes
Serializable, Serializable, Product, Equals, SparkFileDataObject, SchemaValidation, UserDefinedSchema, CanCreateStreamingDataFrame, CanWriteDataFrame, CanCreateDataFrame, HadoopFileDataObject, HasHadoopStandardFilestore, CanCreateOutputStream, CanCreateInputStream, FileRefDataObject, FileDataObject, CanHandlePartitions, DataObject, AtlasExportable, SmartDataLakeLogger, ParsableFromConfig[DataObject], SdlConfigObject, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. XmlFileDataObject
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. SparkFileDataObject
  7. SchemaValidation
  8. UserDefinedSchema
  9. CanCreateStreamingDataFrame
  10. CanWriteDataFrame
  11. CanCreateDataFrame
  12. HadoopFileDataObject
  13. HasHadoopStandardFilestore
  14. CanCreateOutputStream
  15. CanCreateInputStream
  16. FileRefDataObject
  17. FileDataObject
  18. CanHandlePartitions
  19. DataObject
  20. AtlasExportable
  21. SmartDataLakeLogger
  22. ParsableFromConfig
  23. SdlConfigObject
  24. AnyRef
  25. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new XmlFileDataObject(id: DataObjectId, path: String, rowTag: Option[String] = None, xmlOptions: Option[Map[String, String]] = None, partitions: Seq[String] = Seq(), schema: Option[StructType] = None, schemaMin: Option[StructType] = None, saveMode: SDLSaveMode = SDLSaveMode.Overwrite, sparkRepartition: Option[SparkRepartitionDef] = None, flatten: Boolean = false, acl: Option[AclDef] = None, connectionId: Option[ConnectionId] = None, filenameColumn: Option[String] = None, expectedPartitionsCondition: Option[String] = None, housekeepingMode: Option[HousekeepingMode] = None, metadata: Option[DataObjectMetadata] = None)(implicit instanceRegistry: InstanceRegistry)

    xmlOptions

    Settings for the underlying org.apache.spark.sql.DataFrameReader and org.apache.spark.sql.DataFrameWriter.

    schema

    An optional data object schema. If defined, any automatic schema inference is avoided. As this corresponds to the schema on write, it must not include the optional filenameColumn on read.

    sparkRepartition

    Optional definition of repartition operation before writing DataFrame with Spark to Hadoop.

    expectedPartitionsCondition

    Optional definition of partitions expected to exist. Define a Spark SQL expression that is evaluated against a PartitionValues instance and returns true or false Default is to expect all partitions to exist.

    housekeepingMode

    Optional definition of a housekeeping mode applied after every write. E.g. it can be used to cleanup, archive and compact partitions. See HousekeepingMode for available implementations. Default is None.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val acl: Option[AclDef]

    Return the ACL definition for the Hadoop path of this DataObject

    Return the ACL definition for the Hadoop path of this DataObject

    Definition Classes
    XmlFileDataObject → HadoopFileDataObject
    See also

    org.apache.hadoop.fs.permission.AclEntry

  5. def addFieldIfNotExisting(writeSchema: StructType, colName: String, dataType: DataType): StructType
    Attributes
    protected
    Definition Classes
    CanCreateDataFrame
  6. def afterRead(df: DataFrame)(implicit context: ActionPipelineContext): DataFrame

    Callback that enables potential transformation to be applied to df after the data is read.

    Callback that enables potential transformation to be applied to df after the data is read.

    Default is to validate the schemaMin and not apply any modification.

    Definition Classes
    XmlFileDataObject → SparkFileDataObject
  7. def applyAcls(implicit context: ActionPipelineContext): Unit
    Attributes
    protected[workflow]
    Definition Classes
    HadoopFileDataObject
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def atlasName: String
    Definition Classes
    DataObjectAtlasExportable
  10. def atlasQualifiedName(prefix: String): String
    Definition Classes
    AtlasExportable
  11. def beforeWrite(df: DataFrame)(implicit context: ActionPipelineContext): DataFrame

    Callback that enables potential transformation to be applied to df before the data is written.

    Callback that enables potential transformation to be applied to df before the data is written.

    Default is to validate the schemaMin and not apply any modification.

    Definition Classes
    SparkFileDataObject
    Annotations
    @Scaladoc()
  12. def checkFilesExisting(implicit context: ActionPipelineContext): Boolean

    Check if the input files exist.

    Check if the input files exist.

    Attributes
    protected
    Definition Classes
    HadoopFileDataObject
    Annotations
    @Scaladoc()
    Exceptions thrown

    IllegalArgumentException if failIfFilesMissing = true and no files found at path.

  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  14. def compactPartitions(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Unit

    Compact partitions using Spark

    Compact partitions using Spark

    Definition Classes
    SparkFileDataObject → CanHandlePartitions
    Annotations
    @Scaladoc()
  15. val connection: Option[HadoopFileConnection]
    Attributes
    protected
    Definition Classes
    HadoopFileDataObject
  16. val connectionId: Option[ConnectionId]

    Return the connection id.

    Return the connection id.

    Connection defines path prefix (scheme, authority, base path) and ACL's in central location.

    Definition Classes
    XmlFileDataObject → HadoopFileDataObject
  17. def createEmptyPartition(partitionValues: PartitionValues)(implicit context: ActionPipelineContext): Unit

    create empty partition

    create empty partition

    Definition Classes
    HadoopFileDataObject → CanHandlePartitions
  18. def createInputStream(path: String)(implicit context: ActionPipelineContext): InputStream
    Definition Classes
    HadoopFileDataObject → CanCreateInputStream
  19. def createOutputStream(path: String, overwrite: Boolean)(implicit context: ActionPipelineContext): OutputStream

    Create an OutputStream for a given path, that the Action can use to write data into.

    Create an OutputStream for a given path, that the Action can use to write data into.

    Definition Classes
    HadoopFileDataObject → CanCreateOutputStream
  20. def createReadSchema(writeSchema: StructType)(implicit context: ActionPipelineContext): StructType

    Creates the read schema based on a given write schema.

    Creates the read schema based on a given write schema. Normally this is the same, but some DataObjects can remove & add columns on read (e.g. KafkaTopicDataObject, SparkFileDataObject) In this cases we have to break the DataFrame lineage und create a dummy DataFrame in init phase.

    Definition Classes
    SparkFileDataObject → CanCreateDataFrame
  21. def deleteAll(implicit context: ActionPipelineContext): Unit

    Delete all data.

    Delete all data. This is used to implement SaveMode.Overwrite.

    Definition Classes
    HadoopFileDataObject → FileRefDataObject
  22. def deleteAllFiles(path: Path)(implicit context: ActionPipelineContext): Unit

    delete all files inside given path recursively

    delete all files inside given path recursively

    Definition Classes
    HadoopFileDataObject
    Annotations
    @Scaladoc()
  23. def deleteFileRefs(fileRefs: Seq[FileRef])(implicit context: ActionPipelineContext): Unit

    Delete given files.

    Delete given files. This is used to cleanup files after they are processed.

    Definition Classes
    HadoopFileDataObject → FileRefDataObject
  24. def deletePartitions(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Unit

    Delete Hadoop Partitions.

    Delete Hadoop Partitions.

    if there is no value for a partition column before the last partition column given, the partition path will be exploded

    Definition Classes
    HadoopFileDataObject → CanHandlePartitions
    Annotations
    @Scaladoc()
  25. def deletePartitionsFiles(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Unit

    Delete files inside Hadoop Partitions, but keep partition directory to preserve ACLs

    Delete files inside Hadoop Partitions, but keep partition directory to preserve ACLs

    if there is no value for a partition column before the last partition column given, the partition path will be exploded

    Definition Classes
    HadoopFileDataObject
    Annotations
    @Scaladoc()
  26. def endWritingOutputStreams(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Unit

    This is called after all output streams have been written.

    This is called after all output streams have been written. It is used for e.g. making sure empty partitions are created as well.

    Definition Classes
    HadoopFileDataObject → CanCreateOutputStream
  27. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. val expectedPartitionsCondition: Option[String]

    Definition of partitions that are expected to exists.

    Definition of partitions that are expected to exists. This is used to validate that partitions being read exists and don't return no data. Define a Spark SQL expression that is evaluated against a PartitionValues instance and returns true or false example: "elements['yourColName'] > 2017"

    returns

    true if partition is expected to exist.

    Definition Classes
    XmlFileDataObjectCanHandlePartitions
  29. def extractPartitionValuesFromPath(filePath: String)(implicit context: ActionPipelineContext): PartitionValues

    Extract partition values from a given file path

    Extract partition values from a given file path

    Attributes
    protected
    Definition Classes
    FileRefDataObject
    Annotations
    @Scaladoc()
  30. def factory: FromConfigFactory[DataObject]

    Returns the factory that can parse this type (that is, type CO).

    Returns the factory that can parse this type (that is, type CO).

    Typically, implementations of this method should return the companion object of the implementing class. The companion object in turn should implement FromConfigFactory.

    returns

    the factory (object) for this class.

    Definition Classes
    XmlFileDataObject → ParsableFromConfig
  31. def failIfFilesMissing: Boolean

    Configure whether io.smartdatalake.workflow.action.Actions should fail if the input file(s) are missing on the file system.

    Configure whether io.smartdatalake.workflow.action.Actions should fail if the input file(s) are missing on the file system.

    Default is false.

    Definition Classes
    HadoopFileDataObject
    Annotations
    @Scaladoc()
  32. val fileName: String

    Definition of fileName.

    Definition of fileName. Default is an asterix to match everything. This is concatenated with the partition layout to search for files.

    Definition Classes
    XmlFileDataObject → FileRefDataObject
  33. val filenameColumn: Option[String]

    The name of the (optional) additional column containing the source filename

    The name of the (optional) additional column containing the source filename

    Definition Classes
    XmlFileDataObject → SparkFileDataObject
  34. def filterPartitionsExisting(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Seq[PartitionValues]

    Filters only existing partition.

    Filters only existing partition. Note that partition values to check don't need to have a key/value defined for every partition column.

    Definition Classes
    SparkFileDataObject
    Annotations
    @Scaladoc()
  35. val flatten: Boolean
  36. val format: String

    The Spark-Format provider to be used

    The Spark-Format provider to be used

    Definition Classes
    XmlFileDataObject → SparkFileDataObject
  37. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  38. def getConcretePaths(pv: PartitionValues)(implicit context: ActionPipelineContext): Seq[Path]

    Generate all paths for given partition values exploding undefined partitions before the last given partition value.

    Generate all paths for given partition values exploding undefined partitions before the last given partition value. Use case: Reading all files from a given path with spark cannot contain wildcards. If there are partitions without given partition value before the last partition value given, they must be searched with globs.

    Definition Classes
    HadoopFileDataObject
    Annotations
    @Scaladoc()
  39. def getConnection[T <: Connection](connectionId: ConnectionId)(implicit registry: InstanceRegistry, ct: ClassTag[T], tt: scala.reflect.api.JavaUniverse.TypeTag[T]): T

    Handle class cast exception when getting objects from instance registry

    Handle class cast exception when getting objects from instance registry

    Attributes
    protected
    Definition Classes
    DataObject
    Annotations
    @Scaladoc()
  40. def getConnectionReg[T <: Connection](connectionId: ConnectionId, registry: InstanceRegistry)(implicit ct: ClassTag[T], tt: scala.reflect.api.JavaUniverse.TypeTag[T]): T
    Attributes
    protected
    Definition Classes
    DataObject
  41. def getDataFrame(partitionValues: Seq[PartitionValues] = Seq())(implicit context: ActionPipelineContext): DataFrame

    Constructs an Apache Spark DataFrame from the underlying file content.

    Constructs an Apache Spark DataFrame from the underlying file content.

    As spark-xml doesn't support reading partitions, SDL needs to handle partitions on its own. This method overwrites standard getDataFrame method of SparkFileDataObject for this purpose.

    Example for spark-xml failure: reading partitioned XML-files with results in FileNotFoundException session.read .format("xml") .options(Map("rowTag" -> "report")) .schema(rawData.schema.get) .load("partitionedDataObjectPath") .show

    returns

    a new DataFrame containing the data stored in the file at path

    Definition Classes
    XmlFileDataObject → SparkFileDataObject → CanCreateDataFrame
    Annotations
    @Scaladoc()
  42. def getFileRefs(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Seq[FileRef]

    List files for given partition values

    List files for given partition values

    partitionValues

    List of partition values to be filtered. If empty all files in root path of DataObject will be listed.

    returns

    List of FileRefs

    Definition Classes
    HadoopFileDataObject → FileRefDataObject
  43. def getPartitionString(partitionValues: PartitionValues)(implicit context: ActionPipelineContext): Option[String]

    get partition values formatted by partition layout

    get partition values formatted by partition layout

    Definition Classes
    FileRefDataObject
    Annotations
    @Scaladoc()
  44. def getPath(implicit context: ActionPipelineContext): String

    Method for subclasses to override the base path for this DataObject.

    Method for subclasses to override the base path for this DataObject. This is for instance needed if pathPrefix is defined in a connection.

    Definition Classes
    HadoopFileDataObject → FileRefDataObject
  45. def getSchema(sourceExists: Boolean): Option[StructType]

    Returns the user-defined schema for reading from the data source.

    Returns the user-defined schema for reading from the data source. By default, this should return schema but it may be customized by data objects that have a source schema and ignore the user-defined schema on read operations.

    If a user-defined schema is returned, it overrides any schema inference. If no user-defined schema is set, the schema may be inferred depending on the configuration and type of data frame reader.

    sourceExists

    Whether the source file/table exists already. Existing sources may have a source schema.

    returns

    The schema to use for the data frame reader when reading from the source.

    Definition Classes
    SparkFileDataObject
    Annotations
    @Scaladoc()
  46. def getSearchPaths(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Seq[(PartitionValues, String)]

    prepare paths to be searched

    prepare paths to be searched

    Attributes
    protected
    Definition Classes
    FileRefDataObject
    Annotations
    @Scaladoc()
  47. def getStreamingDataFrame(options: Map[String, String], pipelineSchema: Option[StructType])(implicit context: ActionPipelineContext): DataFrame
    Definition Classes
    SparkFileDataObject → CanCreateStreamingDataFrame
  48. def hadoopPath(implicit context: ActionPipelineContext): Path
    Definition Classes
    HadoopFileDataObject → HasHadoopStandardFilestore
  49. val housekeepingMode: Option[HousekeepingMode]

    Configure a housekeeping mode to e.g cleanup, archive and compact partitions.

    Configure a housekeeping mode to e.g cleanup, archive and compact partitions. Default is None.

    Definition Classes
    XmlFileDataObjectDataObject
  50. val id: DataObjectId

    A unique identifier for this instance.

    A unique identifier for this instance.

    Definition Classes
    XmlFileDataObjectDataObject → SdlConfigObject
  51. def init(df: DataFrame, partitionValues: Seq[PartitionValues], saveModeOptions: Option[SaveModeOptions] = None)(implicit context: ActionPipelineContext): Unit

    Called during init phase for checks and initialization.

    Called during init phase for checks and initialization. If possible dont change the system until execution phase.

    Definition Classes
    SparkFileDataObject → CanWriteDataFrame
  52. implicit val instanceRegistry: InstanceRegistry

    Return the InstanceRegistry parsed from the SDL configuration used for this run.

    Return the InstanceRegistry parsed from the SDL configuration used for this run.

    returns

    the current InstanceRegistry.

    Definition Classes
    XmlFileDataObject → HadoopFileDataObject
  53. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  54. def listPartitions(implicit context: ActionPipelineContext): Seq[PartitionValues]

    List partitions on data object's root path

    List partitions on data object's root path

    Definition Classes
    HadoopFileDataObject → CanHandlePartitions
    Annotations
    @Scaladoc()
  55. lazy val logger: Logger
    Attributes
    protected
    Definition Classes
    SmartDataLakeLogger
    Annotations
    @transient()
  56. val metadata: Option[DataObjectMetadata]

    Additional metadata for the DataObject

    Additional metadata for the DataObject

    Definition Classes
    XmlFileDataObjectDataObject
  57. def movePartitions(partitionValuesMapping: Seq[(PartitionValues, PartitionValues)])(implicit context: ActionPipelineContext): Unit

    Move given partitions.

    Move given partitions. This is used to archive partitions by housekeeping. Note: this is optional to implement.

    Definition Classes
    HadoopFileDataObject → CanHandlePartitions
  58. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  59. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  60. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  61. val options: Map[String, String]

    Returns the configured options for the Spark DataFrameReader/DataFrameWriter.

    Returns the configured options for the Spark DataFrameReader/DataFrameWriter.

    Definition Classes
    XmlFileDataObject → SparkFileDataObject
    See also

    DataFrameReader

    DataFrameWriter

  62. def partitionLayout(): Option[String]

    Return a String specifying the partition layout.

    Return a String specifying the partition layout. For Hadoop the default partition layout is colname1=<value1>/colname2=<value2>/.../

    Definition Classes
    HasHadoopStandardFilestore
    Annotations
    @Scaladoc()
  63. val partitions: Seq[String]

    Definition of partition columns

    Definition of partition columns

    Definition Classes
    XmlFileDataObjectCanHandlePartitions
  64. val path: String

    The root path of the files that are handled by this DataObject.

    The root path of the files that are handled by this DataObject.

    Definition Classes
    XmlFileDataObject → FileDataObject
  65. def postWrite(partitionValues: Seq[PartitionValues])(implicit context: ActionPipelineContext): Unit

    Runs operations after writing to DataObject

    Runs operations after writing to DataObject

    Definition Classes
    HadoopFileDataObject → DataObject
  66. def preWrite(implicit context: ActionPipelineContext): Unit

    Runs operations before writing to DataObject Note: As the transformed SubFeed doesnt yet exist in Action.preWrite, no partition values can be passed as parameters as in preRead

    Runs operations before writing to DataObject Note: As the transformed SubFeed doesnt yet exist in Action.preWrite, no partition values can be passed as parameters as in preRead

    Definition Classes
    HadoopFileDataObject → DataObject
  67. def prepare(implicit context: ActionPipelineContext): Unit

    Prepare & test DataObject's prerequisits

    Prepare & test DataObject's prerequisits

    This runs during the "prepare" operation of the DAG.

    Definition Classes
    HadoopFileDataObject → FileDataObject → DataObject
  68. def relativizePath(path: String)(implicit context: ActionPipelineContext): String

    Make a given path relative to this DataObjects base path

    Make a given path relative to this DataObjects base path

    Definition Classes
    HadoopFileDataObject → FileDataObject
  69. val rowTag: Option[String]
  70. val saveMode: SDLSaveMode

    Overwrite or Append new data.

    Overwrite or Append new data. When writing partitioned data, this applies only to partitions concerned.

    Definition Classes
    XmlFileDataObject → FileRefDataObject
  71. val schema: Option[StructType]

    An optional DataObject user-defined schema definition.

    An optional DataObject user-defined schema definition.

    Some DataObjects support optional schema inference. Specifying this attribute disables automatic schema inference. When the wrapped data source contains a source schema, this schema attribute is ignored.

    Note: This is only used by the functionality defined in CanCreateDataFrame, that is, when reading Spark data frames from the underlying data container. io.smartdatalake.workflow.action.Actions that bypass Spark data frames ignore the schema attribute if it is defined.

    Definition Classes
    XmlFileDataObject → UserDefinedSchema
  72. val schemaMin: Option[StructType]

    An optional, minimal schema that a DataObject schema must have to pass schema validation.

    An optional, minimal schema that a DataObject schema must have to pass schema validation.

    The schema validation semantics are: - Schema A is valid in respect to a minimal schema B when B is a subset of A. This means: the whole column set of B is contained in the column set of A.

    • A column of B is contained in A when A contains a column with equal name and data type.
    • Column order is ignored.
    • Column nullability is ignored.
    • Duplicate columns in terms of name and data type are eliminated (set semantics).

    Note: This is mainly used by the functionality defined in CanCreateDataFrame and CanWriteDataFrame, that is, when reading or writing Spark data frames from/to the underlying data container. io.smartdatalake.workflow.action.Actions that work with files ignore the schemaMin attribute if it is defined. Additionally schemaMin can be used to define the schema used if there is no data or table doesn't yet exist.

    Definition Classes
    XmlFileDataObject → SchemaValidation
  73. val separator: Char

    default separator for paths

    default separator for paths

    Attributes
    protected
    Definition Classes
    FileDataObject
    Annotations
    @Scaladoc()
  74. val sparkRepartition: Option[SparkRepartitionDef]

    Definition of repartition operation before writing DataFrame with Spark to Hadoop.

    Definition of repartition operation before writing DataFrame with Spark to Hadoop.

    Definition Classes
    XmlFileDataObject → SparkFileDataObject
  75. def startWritingOutputStreams(partitionValues: Seq[PartitionValues] = Seq())(implicit context: ActionPipelineContext): Unit

    This is called before any output stream is created to initialize writing.

    This is called before any output stream is created to initialize writing. It is used to apply SaveMode, e.g. deleting existing partitions.

    Definition Classes
    HadoopFileDataObject → CanCreateOutputStream
  76. def streamingOptions: Map[String, String]
    Definition Classes
    CanWriteDataFrame
  77. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  78. def toStringShort: String
    Definition Classes
    DataObject
  79. def translateFileRefs(fileRefs: Seq[FileRef])(implicit context: ActionPipelineContext): Seq[FileRefMapping]

    Given some FileRef for another DataObject, translate the paths to the root path of this DataObject

    Given some FileRef for another DataObject, translate the paths to the root path of this DataObject

    Definition Classes
    FileRefDataObject
    Annotations
    @Scaladoc()
  80. def validateSchema(df: DataFrame, schemaExpected: StructType, role: String): Unit

    Validate the schema of a given Spark Data Frame df against a given expected schema.

    Validate the schema of a given Spark Data Frame df against a given expected schema.

    df

    The data frame to validate.

    schemaExpected

    The expected schema to validate against.

    role

    role used in exception message. Set to read or write.

    Definition Classes
    SchemaValidation
    Annotations
    @Scaladoc()
    Exceptions thrown

    SchemaViolationException is the schemaMin does not validate.

  81. def validateSchemaHasPartitionCols(df: DataFrame, role: String): Unit

    Validate the schema of a given Spark Data Frame df that it contains the specified partition columns

    Validate the schema of a given Spark Data Frame df that it contains the specified partition columns

    df

    The data frame to validate.

    role

    role used in exception message. Set to read or write.

    Definition Classes
    CanHandlePartitions
    Annotations
    @Scaladoc()
    Exceptions thrown

    SchemaViolationException if the partitions columns are not included.

  82. def validateSchemaHasPrimaryKeyCols(df: DataFrame, primaryKeyCols: Seq[String], role: String): Unit

    Validate the schema of a given Spark Data Frame df that it contains the specified primary key columns

    Validate the schema of a given Spark Data Frame df that it contains the specified primary key columns

    df

    The data frame to validate.

    role

    role used in exception message. Set to read or write.

    Definition Classes
    CanHandlePartitions
    Annotations
    @Scaladoc()
    Exceptions thrown

    SchemaViolationException if the partitions columns are not included.

  83. def validateSchemaMin(df: DataFrame, role: String): Unit

    Validate the schema of a given Spark Data Frame df against schemaMin.

    Validate the schema of a given Spark Data Frame df against schemaMin.

    df

    The data frame to validate.

    role

    role used in exception message. Set to read or write.

    Definition Classes
    SchemaValidation
    Annotations
    @Scaladoc()
    Exceptions thrown

    SchemaViolationException is the schemaMin does not validate.

  84. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  85. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  86. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  87. final def writeDataFrame(df: DataFrame, partitionValues: Seq[PartitionValues] = Seq(), isRecursiveInput: Boolean = false, saveModeOptions: Option[SaveModeOptions] = None)(implicit context: ActionPipelineContext): Unit

    Writes the provided DataFrame to the filesystem.

    Writes the provided DataFrame to the filesystem.

    The partitionValues attribute is used to partition the output by the given columns on the file system.

    df

    the DataFrame to write to the file system.

    partitionValues

    The partition layout to write.

    isRecursiveInput

    if DataFrame needs this DataObject as input - special treatment might be needed in this case.@param session the current SparkSession.

    Definition Classes
    SparkFileDataObject → CanWriteDataFrame
    Annotations
    @Scaladoc()
    See also

    DataFrameWriter.partitionBy

  88. def writeDataFrameToPath(df: DataFrame, path: Path, finalSaveMode: SDLSaveMode)(implicit context: ActionPipelineContext): Unit

    Write DataFrame to specific Path with properties of this DataObject.

    Write DataFrame to specific Path with properties of this DataObject. This is needed for compacting partitions by housekeeping. Note: this is optional to implement.

    Definition Classes
    XmlFileDataObject → SparkFileDataObject → CanWriteDataFrame
  89. def writeStreamingDataFrame(df: DataFrame, trigger: Trigger, options: Map[String, String], checkpointLocation: String, queryName: String, outputMode: OutputMode = OutputMode.Append, saveModeOptions: Option[SaveModeOptions] = None)(implicit context: ActionPipelineContext): StreamingQuery

    Write Spark structured streaming DataFrame The default implementation uses foreachBatch and this traits writeDataFrame method to write the DataFrame.

    Write Spark structured streaming DataFrame The default implementation uses foreachBatch and this traits writeDataFrame method to write the DataFrame. Some DataObjects will override this with specific implementations (Kafka).

    df

    The Streaming DataFrame to write

    trigger

    Trigger frequency for stream

    checkpointLocation

    location for checkpoints of streaming query

    Definition Classes
    SparkFileDataObject → CanWriteDataFrame
  90. val xmlOptions: Option[Map[String, String]]

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from SparkFileDataObject

Inherited from SchemaValidation

Inherited from UserDefinedSchema

Inherited from CanCreateStreamingDataFrame

Inherited from CanWriteDataFrame

Inherited from CanCreateDataFrame

Inherited from HadoopFileDataObject

Inherited from CanCreateOutputStream

Inherited from CanCreateInputStream

Inherited from FileRefDataObject

Inherited from FileDataObject

Inherited from CanHandlePartitions

Inherited from DataObject

Inherited from AtlasExportable

Inherited from SmartDataLakeLogger

Inherited from ParsableFromConfig[DataObject]

Inherited from SdlConfigObject

Inherited from AnyRef

Inherited from Any

Ungrouped