AWS Glue Scala DynamicRecord 类 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

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 — 要删除的字段的路径。

  • underRename — 如果作为重命名转换的一部分调用 dropField,则为 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 }