

# AWS Glue Scala DynamicRecord 클래스
<a name="glue-etl-scala-apis-glue-dynamicrecord-class"></a>

**Topics**
+ [def addField](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-addField)
+ [def dropField](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-dropField)
+ [def setError](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-setError)
+ [def isError](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-isError)
+ [def getError](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-getError)
+ [def clearError](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-clearError)
+ [def write](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-write)
+ [def readFields](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-readFields)
+ [def clone](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-clone)
+ [def schema](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-schema)
+ [def getRoot](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-getRoot)
+ [def toJson](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-toJson)
+ [def getFieldNode](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-getFieldNode)
+ [def getField](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-getField)
+ [def hashCode](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-hashCode)
+ [def equals](#glue-etl-scala-apis-glue-dynamicrecord-class-defs-equals)
+ [DynamicRecord 객체](#glue-etl-scala-apis-glue-dynamicrecord-object)
+ [RecordTraverser 특성](#glue-etl-scala-apis-glue-recordtraverser-trait)

**패키지:   com.amazonaws.services.glue**

```
class DynamicRecord extends Serializable with Writable with Cloneable
```

`DynamicRecord`는 진행된 데이터 세트의 데이터 행을 나타내는 자체적으로 설명되는 데이터 구조입니다. 기록 자체를 검사한 `DynamicRecord`에 의해 보여지는 스키마 행을 얻을 수 있다는 의미에서 자체 설명적입니다. `DynamicRecord`는 Apache Spark의 `Row`와 유사합니다.

## def addField
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-addField"></a>

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

지정된 경로로 [DynamicNode](glue-etl-scala-apis-glue-types-dynamicnode.md)를 추가합니다.
+ `path` - 필드를 추가할 경로입니다.
+ `dynamicNode` - 지정된 경로에 추가될 [DynamicNode](glue-etl-scala-apis-glue-types-dynamicnode.md)입니다.

## def dropField
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-dropField"></a>

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

지정된 경로로부터 [DynamicNode](glue-etl-scala-apis-glue-types-dynamicnode.md)을 드롭하고 지정된 경로에 배열이 없으면 드롭된 노트를 반환합니다.
+ `path` - 필드를 제거할 경로입니다.
+ `underRename` - `dropField`가 이름 변경 변환의 일부로 호출되는 경우는 true이고, 아닌 경우는 false입니다(기본값은 false).

`scala.Option Option`([DynamicNode](glue-etl-scala-apis-glue-types-dynamicnode.md))을 반환합니다.

## def setError
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-setError"></a>

```
def setError( error : Error )
```

`error` 파라미터에 의해 지정되어 이 기록을 오류 기록으로 설정합니다.

`DynamicRecord`을 반환합니다.

## def isError
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-isError"></a>

```
def isError
```

이 기록이 오류 기록인지 확인합니다.

## def getError
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-getError"></a>

```
def getError
```

이 기록이 오류 기록이면 `Error`를 얻습니다. 이 기록이 오류 기록이면 `scala.Some Some`(오류)를 반환하고 그렇지 않으면 `scala.None`입니다.

## def clearError
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-clearError"></a>

```
def clearError
```

`Error`을 `scala.None.None`로 설정합니다.

## def write
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-write"></a>

```
override def write( out : DataOutput ) : Unit 
```



## def readFields
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-readFields"></a>

```
override def readFields( in : DataInput ) : Unit 
```



## def clone
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-clone"></a>

```
override def clone : DynamicRecord 
```

이 레코드를 새 `DynamicRecord`로 복제하고 반환합니다.

## def schema
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-schema"></a>

```
def schema
```

이 기록을 검사하여 `Schema`를 얻습니다.

## def getRoot
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-getRoot"></a>

```
def getRoot : ObjectNode 
```

이 레코드의 루트 `ObjectNode`를 얻습니다.

## def toJson
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-toJson"></a>

```
def toJson : String 
```

이 레코드의 JSON 문자열을 얻습니다.

## def getFieldNode
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-getFieldNode"></a>

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

`DynamicNode`의 옵션으로 지정된 `path`의 필드 값을 가져옵니다.

필드가 존재하는 경우 `scala.Some Some`([DynamicNode](glue-etl-scala-apis-glue-types-dynamicnode.md))을 반환하고, 그렇지 않으면 `scala.None.None`입니다.

## def getField
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-getField"></a>

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

`DynamicNode`의 옵션으로 지정된 `path`의 필드 값을 가져옵니다.

`scala.Some Some`(값)을 반환합니다.

## def hashCode
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-hashCode"></a>

```
override def hashCode : Int 
```



## def equals
<a name="glue-etl-scala-apis-glue-dynamicrecord-class-defs-equals"></a>

```
override def equals( other : Any )
```



## DynamicRecord 객체
<a name="glue-etl-scala-apis-glue-dynamicrecord-object"></a>

```
object DynamicRecord
```

### 정의 적용
<a name="glue-etl-scala-apis-glue-dynamicrecord-object-defs-apply"></a>

```
def apply( row : Row,
           schema : SparkStructType )
```

Apache Spark SQL `Row`를 [DynamicRecord](#glue-etl-scala-apis-glue-dynamicrecord-class)로 변환하는 방법을 적용합니다.
+ `row` - Spark SQL `Row`.
+ `schema` - 행의 `Schema`입니다.

`DynamicRecord`을 반환합니다.

## RecordTraverser 특성
<a name="glue-etl-scala-apis-glue-recordtraverser-trait"></a>

```
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
}
```