Amazon Glue Scala DynamicRecord 类
主题
程序包:com.amazonaws.services.glue
class DynamicRecord extends Serializable with Writable with CloneableDynamicRecord 是一个自描述数据结构,它表示被处理的数据集中的一行数据。自描述的意义在于,您可以通过检查记录本身来获取 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 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
}