本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 SQLRow
。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
}