다음을 통해 공유


데이터 형식

적용 대상: 예(예)로 표시된 확인 Databricks SQL 예(예)로 표시된 확인 Databricks 런타임

데이터 형식 간의 충돌을 해결하는 방법을 제어하는 규칙은 SQL 데이터 형식 규칙을 참조하세요.

지원되는 데이터 유형

Azure Databricks는 다음 데이터 형식을 지원합니다.

데이터 형식 설명
BIGINT 8바이트 부호 있는 정수를 나타냅니다.
BINARY 바이트 시퀀스 값을 나타냅니다.
BOOLEAN 부울 값을 나타냅니다.
DATE 표준 시간대가 없는 연도, 월 및 일 필드의 값으로 구성된 값을 나타냅니다.
DECIMAL(p,s) 최대 정밀도 p 및 고정 눈금 s가 있는 숫자를 나타냅니다.
DOUBLE 8바이트 배정밀도 부동 소수점 숫자를 나타냅니다.
FLOAT 4바이트 단정밀도 부동 소수점 숫자를 나타냅니다.
INT 4바이트 부호 있는 정수를 나타냅니다.
INTERVAL intervalQualifier 시간 간격(초 또는 월)을 나타냅니다.
VOID 형식화되지 않은 NULL을 나타냅니다.
SMALLINT 2바이트 부호 있는 정수를 나타냅니다.
STRING 문자열 값을 나타냅니다.
TIMESTAMP 세션 현지 표준 시간대가 있는 연도, 월, 일, 시간, 분 및 초 필드의 값으로 구성된 값을 나타냅니다.
TIMESTAMP_NTZ 연도, 월, 일, 시간, 분 및 초 필드 값으로 구성된 값을 나타냅니다. 모든 작업은 표준 시간대를 고려하지 않고 수행됩니다.
TINYINT 1바이트 부호 있는 정수를 나타냅니다.
ARRAY <elementType> 형식 elementType가 있는 요소 시퀀스로 구성된 값을 나타냅니다.
MAP < keyType,valueType > 키-값 쌍 세트로 구성된 값을 나타냅니다.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, …]] > 필드 시퀀스로 설명된 구조체의 값을 나타냅니다.

Important

Delta Lake는 형식을 VOID 지원하지 않습니다.

데이터 형식 분류

데이터 유형은 다음 클래스로 그룹화됩니다.

적용 대상: 예(예)로 표시된 확인 Databricks 런타임

Scala

Spark SQL 데이터 형식은 org.apache.spark.sql.types 패키지에 정의됩니다. 패키지를 가져와서 액세스합니다.

import org.apache.spark.sql.types._
SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT ByteType Byte ByteType
SMALLINT ShortType Short ShortType
INT IntegerType 정수 IntegerType
BIGINT LongType Long LongType
FLOAT FloatType Float FloatType
DOUBLE DoubleType 두 배 DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
STRING StringType 문자열 StringType
BINARY BinaryType Array[Byte] BinaryType
BOOLEAN BooleanType Boolean BooleanType
TIMESTAMP TimestampType java.sql.timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE DateType java.sql.Date DateType
연도-월 간격 YearMonthIntervalType java.time.Period YearMonthIntervalType(3)
일 시간 간격 DayTimeIntervalType java.time.Duration DayTimeIntervalType(3)
ARRAY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAP MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fields). 필드는 StructField의 Seq입니다. 4.
StructField 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식이 있는 StructField의 경우 Int) StructField(name, dataType [, nullable]). 4

Java

Spark SQL 데이터 형식은 org.apache.spark.sql.types 패키지에 정의됩니다. 데이터 형식에 액세스하거나 만들려면 org.apache.spark.sql.types.DataTypes에 제공된 팩터리 메서드를 사용합니다.

SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT ByteType byte 또는 Byte DataTypes.ByteType
SMALLINT ShortType short 또는 Short DataTypes.ShortType
INT IntegerType int 또는 Integer DataTypes.IntegerType
BIGINT LongType long 또는 Long DataTypes.LongType
FLOAT FloatType float 또는 Float DataTypes.FloatType
DOUBLE DoubleType double 또는 Double DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
STRING StringType 문자열 DataTypes.StringType
BINARY BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType boolean 또는 Boolean DataTypes.BooleanType
TIMESTAMP TimestampType java.sql.timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATE DateType java.sql.Date DataTypes.DateType
연도-월 간격 YearMonthIntervalType java.time.Period YearMonthIntervalType(3)
일 시간 간격 DayTimeIntervalType java.time.Duration DayTimeIntervalType(3)
ARRAY ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
MAP MapType java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
STRUCT StructType org.apache.spark.sql.Row DataTypes.createStructType(fields). 필드는 StructField의 목록 또는 배열입니다. 4
StructField 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식의 StructField의 경우 Int) DataTypes.createStructField(name, dataType, nullable) 4

Python

Spark SQL 데이터 형식은 pyspark.sql.types 패키지에 정의됩니다. 패키지를 가져와서 액세스합니다.

from pyspark.sql.types import *
SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT ByteType int 또는 long (1) ByteType()
SMALLINT ShortType int 또는 long (1) ShortType()
INT IntegerType int 또는 long IntegerType()
BIGINT LongType long(1) LongType()
FLOAT FloatType float(1) FloatType()
DOUBLE DoubleType float DoubleType()
DECIMAL(p,s) DecimalType decimal.Decimal DecimalType()
STRING StringType string StringType()
BINARY BinaryType ByteArray BinaryType()
BOOLEAN BooleanType bool BooleanType()
TIMESTAMP TimestampType datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType datetime.date DateType()
연도-월 간격 YearMonthIntervalType 지원되지 않음 지원되지 않음
일 시간 간격 DayTimeIntervalType datetime.timedelta DayTimeIntervalType(3)
ARRAY ArrayType list, tuple 또는 array ArrayType(elementType, [containsNull]).(2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]).(2)
STRUCT StructType list, tuple, 또는 array StructType(fields). 필드는 StructField의 Seq입니다. (4)
StructField 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식의 StructField의 경우 Int) StructField(name, dataType, [nullable]).(4)

R

SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT ByteType integer(1) ‘byte’
SMALLINT ShortType integer(1) ‘short’
INT IntegerType 정수 ‘integer’
BIGINT LongType integer(1) ‘long’
FLOAT FloatType numeric(1) ‘float’
DOUBLE DoubleType numeric ‘double’
DECIMAL(p,s) DecimalType 지원되지 않음 지원되지 않음
STRING StringType character ‘string’
BINARY BinaryType 원시 ‘binary’
BOOLEAN BooleanType 논리 ‘bool’
TIMESTAMP TimestampType POSIXct ‘timestamp’
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType 날짜 ‘date’
연도-월 간격 YearMonthIntervalType 지원되지 않음 지원되지 않음
일 시간 간격 DayTimeIntervalType 지원되지 않음 지원되지 않음
ARRAY ArrayType vector or list list(type=’array’, elementType=elementType, containsNull=[containsNull]).(2)
MAP MapType environment list(type=’map’, keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUCT StructType 명명된 목록 list(type=’struct’, fields=fields). 필드는 StructField의 Seq입니다. (4)
StructField 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식의 StructField의 경우 integer) list(name=name, type=dataType, nullable=[nullable]).(4)

(1) 숫자는 런타임에 도메인으로 변환됩니다. 숫자가 범위 내에 있는지 확인합니다.

(2) (선택 사항) 기본값은 TRUE입니다.

(3) 간격 유형

  • YearMonthIntervalType([startField,] endField): 다음 필드의 연속 하위 집합으로 구성된 1년 간격을 나타냅니다.

    startField 는 가장 왼쪽 필드이며 endField 형식의 가장 오른쪽 필드입니다. startFieldendField의 유효한 값은 0(MONTH)1(YEAR)입니다.

  • DayTimeIntervalType([startField,] endField): 다음 필드의 연속 하위 집합으로 구성된 일-시간을 나타냅니다.

    startField 는 가장 왼쪽 필드이며 endField 형식의 가장 오른쪽 필드입니다. startFieldendField의 유효한 값은 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND)입니다.

(4) StructType

  • StructType(fields)은(는) StructField의 시퀀스, 목록 또는 배열로 설명된 구조체의 값을 나타냅니다. 두 필드의 이름이 같아서는 안 됩니다.
  • StructField(name, dataType, nullable)은(는) StructType의 필드를 나타냅니다. 필드 이름은 name으로 표시됩니다. 필드의 데이터 형식은 dataType으로 표시됩니다. nullable은 해당 필드의 값이 null 값을 가질 수 있는지 여부를 나타냅니다. 기본값입니다.