AWS Glue Scala DynamicRecord 类 - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Glue Scala DynamicRecord 类

程序包:com.amazonaws.services.glue

class DynamicRecord extends Serializable with Writable with Cloneable

DynamicRecord 是一个自描述数据结构,它表示被处理的数据集中的一行数据。自描述的意义在于,您可以通过检查记录本身来获取 DynamicRecord 所表示行的架构。DynamicRecord 类似于 Apache Spark 中的 Row

Def addField

def addField( path : String, dynamicNode : DynamicNode ) : Unit

DynamicNode 添加至指定路径。

  • path – 要添加的字段的路径。

  • dynamicNode – 要在指定路径处添加的 DynamicNode

Def dropField

def dropField(path: String, underRename: Boolean = false): Option[DynamicNode]

从指定路径删除 DynamicNode 并在指定路径中不存在阵列时返回已删除的节点。

  • path – 要删除的字段的路径。

  • underRenamedropField – 如果作为重命名转换的一部分调用 ,则为 True,否则为 false (默认为 false)。

返回 scala.Option Option (DynamicNode)。

Def setError

def setError( error : Error )

error 参数指定,将此记录设置为错误记录。

返回 DynamicRecord

Def isError

def isError

检查此记录是否为错误记录。

Def getError

def getError

如果记录为错误记录,则获取 Error。如果此记录为错误记录,则返回 scala.Some Some (错误);否则返回 scala.None

Def clearError

def clearError

Error 设置为 scala.None.None

Def write

override def write( out : DataOutput ) : Unit

Def readFields

override def readFields( in : DataInput ) : Unit

Def clone

override def clone : DynamicRecord

将此记录克隆到新 DynamicRecord 并将其返回。

Def schema

def schema

通过检查记录获取 Schema

Def getRoot

def getRoot : ObjectNode

获取记录的根 ObjectNode

Def toJson

def toJson : String

获取记录的 JSON 字符串。

Def getFieldNode

def getFieldNode( path : String ) : Option[DynamicNode]

获取指定 path 处的字段值,作为 DynamicNode 的 Option。

如果字段存在,则返回 scala.Some Some (DynamicNode),否则返回 scala.None.None

Def getField

def getField( path : String ) : Option[Any]

获取指定 path 处的字段值,作为 DynamicNode 的 Option。

返回 scala.Some Some (值)。

Def hashCode

override def hashCode : Int

Def equals

override def equals( other : Any )

DynamicRecord 对象

object DynamicRecord

Def apply

def apply( row : Row, schema : SparkStructType )

应用方法以将 Apache Spark SQL Row 转换为 DynamicRecord

  • row – Spark SQL Row

  • schema – 该行的 Schema

返回 DynamicRecord

RecordTraverser 特性

trait RecordTraverser { def nullValue(): Unit def byteValue(value: Byte): Unit def binaryValue(value: Array[Byte]): Unit def booleanValue(value: Boolean): Unit def shortValue(value: Short) : Unit def intValue(value: Int) : Unit def longValue(value: Long) : Unit def floatValue(value: Float): Unit def doubleValue(value: Double): Unit def decimalValue(value: BigDecimal): Unit def stringValue(value: String): Unit def dateValue(value: Date): Unit def timestampValue(value: Timestamp): Unit def objectStart(length: Int): Unit def objectKey(key: String): Unit def objectEnd(): Unit def mapStart(length: Int): Unit def mapKey(key: String): Unit def mapEnd(): Unit def arrayStart(length: Int): Unit def arrayEnd(): Unit }