다음을 통해 공유


데이터 유형

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

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

지원되는 데이터 유형

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

데이터 형식 설명
BIGINT 8바이트 부호 있는 정수를 나타냅니다.
바이너리 바이트 시퀀스 값을 나타냅니다.
불리언 부울 값을 나타냅니다.
날짜 표준 시간대가 없는 연도, 월 및 일 필드의 값으로 구성된 값을 나타냅니다.
DECIMAL(p,s) 최대 정밀도 p 및 고정 눈금 s가 있는 숫자를 나타냅니다.
더블 8바이트 배정밀도 부동 소수점 숫자를 나타냅니다.
플로트 4바이트 단정밀도 부동 소수점 숫자를 나타냅니다.
정수 4바이트 부호 있는 정수를 나타냅니다.
INTERVAL 구간 한정자 시간 간격(초 또는 월)을 나타냅니다.
무효 형식화되지 않은 NULL을 나타냅니다.
SMALLINT 2바이트 부호 있는 정수를 나타냅니다.
문자열 문자열 값을 나타냅니다.
타임 스탬프 세션 현지 표준 시간대가 있는 연도, 월, 일, 시간, 분 및 초 필드의 값으로 구성된 값을 나타냅니다.
TIMESTAMP_NTZ 필드 연도, 월, 일, 시간, 분 및 초의 값으로 구성된 값을 나타냅니다. 모든 작업은 표준 시간대를 고려하지 않고 수행됩니다.
TINYINT (1바이트 정수 데이터 타입) 1바이트 부호 있는 정수를 나타냅니다.
ARRAY < elementType > 형식 elementType가 있는 요소 시퀀스로 구성된 값을 나타냅니다.
MAP < keyType,valueType > 키-값 쌍 세트로 구성된 값을 나타냅니다.
STRUCT < [필드명 : 필드 타입 [NOT NULL][COMMENT 문자열][, ...]] > 필드 시퀀스로 설명된 구조체의 값을 나타냅니다.
변체 반구조화된 데이터를 나타냅니다.
객체 필드 집합에서 VARIANT 설명하는 구조체가 있는 값을 나타냅니다.

중요합니다

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

데이터 형식 분류

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

  • 이진 부동 소수점 형식은 지수 및 이진 표현을 사용하여 다양한 숫자를 처리합니다.

언어 매핑

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

스칼라

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

import org.apache.spark.sql.types._
SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT (1바이트 정수 데이터 타입) 바이트타입 바이트 바이트타입
SMALLINT 쇼트타입 간단한 쇼트타입
정수 인터저타입 정수 인터저타입
BIGINT 롱타입 길다 롱타입
플로트 플롯타입 떠다니다 플롯타입
더블 더블타입 두 배 더블타입
DECIMAL(p,s) 데시말타입 java.math.BigDecimal 데시말타입
문자열 스트링타입 문자열 스트링타입
바이너리 바이너리 타입 바이트 배열 바이너리 타입
불리언 불리언 타입 불리언 (Boolean) 불리언 타입
타임 스탬프 타임스탬프 유형 java.sql.timestamp 타임스탬프 유형
TIMESTAMP_NTZ 타임스탬프NTZ유형 java.time.LocalDateTime 타임스탬프NTZ유형
날짜 날짜타입 java.sql.Date 날짜타입
연도-월 간격 연월간격유형 java.time.Period YearMonthIntervalType(3)
일 시간 간격 주간 시간 간격 유형 java.time.Duration DayTimeIntervalType(3)
배열 배열 유형 scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
지도 맵타입 scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
구조체 구조형 타입 org.apache.spark.sql.Row StructType(fields). 필드는 StructField의 Seq입니다. 4.
구조체 필드 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식이 있는 StructField의 경우 Int) StructField(이름, 데이터 유형 [, nullable]). 4
변체 변형 유형 org.apache.spark.unsafe.type.VariantVal 변형 유형
객체 지원되지 않음 지원되지 않음 지원되지 않음

자바

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

SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT (1바이트 정수 데이터 타입) 바이트타입 byte 또는 Byte DataTypes.ByteType (데이터 유형: 바이트 타입)
SMALLINT 쇼트타입 short 또는 Short DataTypes.ShortType (데이터 타입.숏타입)
정수 인터저타입 int 또는 Integer DataTypes.IntegerType
BIGINT 롱타입 long 또는 Long DataTypes.LongType
플로트 플롯타입 float 또는 Float DataTypes.FloatType (데이터 유형: 부동 소수점 형식)
더블 더블타입 double 또는 Double DataTypes.DoubleType (더블형)
DECIMAL(p,s) 데시말타입 java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale) (정밀도와 스케일 매개변수를 사용하여 소수 유형을 생성합니다).
문자열 스트링타입 문자열 DataTypes.StringType(데이터 유형.문자열 유형)
바이너리 바이너리 타입 byte[] DataTypes.BinaryType (데이터 유형. 바이너리 유형)
불리언 불리언 타입 boolean 또는 Boolean DataTypes.BooleanType
타임 스탬프 타임스탬프 유형 java.sql.timestamp DataTypes.타임스탬프 타입
TIMESTAMP_NTZ 타임스탬프NTZ유형 java.time.LocalDateTime DataTypes.TimestampNTZType (타임스탬프 NTZ 유형)
날짜 날짜타입 java.sql.Date DataTypes.DateType (날짜형식)
연도-월 간격 연월간격유형 java.time.Period YearMonthIntervalType(3)
일 시간 간격 주간 시간 간격 유형 java.time.Duration DayTimeIntervalType(3)
배열 배열 유형 ava.util.List DataTypes.createArrayType(elementType [, containsNull]) 함수는 배열을 생성합니다. (2)
지도 맵타입 java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
구조체 구조형 타입 org.apache.spark.sql.Row DataTypes.createStructType(fields). 필드는 StructField의 목록 또는 배열입니다. 4
구조체 필드 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식의 StructField의 경우 Int) DataTypes.createStructField(name, dataType, nullable) 4
변체 변형 유형 org.apache.spark.unsafe.type.VariantVal 변형 유형
객체 지원되지 않음 지원되지 않음 지원되지 않음

파이썬

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

from pyspark.sql.types import *
SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT (1바이트 정수 데이터 타입) 바이트타입 int 또는 long (1) ByteType()
SMALLINT 쇼트타입 int 또는 long (1) ShortType()
정수 인터저타입 int 또는 long IntegerType()
BIGINT 롱타입 long(1) LongType()
플로트 플롯타입 float(1) FloatType()
더블 더블타입 떠다니다 DoubleType()
DECIMAL(p,s) 데시말타입 데시멀(decimal) DecimalType(디시멀타입)
문자열 스트링타입 문자열 StringType()
바이너리 바이너리 타입 ByteArray BinaryType()
불리언 불리언 타입 불리언 BooleanType()
타임 스탬프 타임스탬프 유형 datetime.datetime TimestampType()
TIMESTAMP_NTZ 타임스탬프NTZ유형 datetime.datetime TimestampNTZType()
날짜 날짜타입 datetime.date (Python의 날짜 관련 라이브러리) 날짜유형()
연도-월 간격 연월간격유형 지원되지 않음 지원되지 않음
일 시간 간격 주간 시간 간격 유형 datetime.timedelta DayTimeIntervalType(3)
배열 배열 유형 list, tuple 또는 array ArrayType(elementType, [containsNull]). (2)
지도 맵타입 사전 MapType(keyType, valueType, [valueContainsNull]). (2)
구조체 구조형 타입 list, tuple, 또는 array StructType(fields). 필드는 StructField의 Seq입니다. (4)
구조체 필드 이 필드의 데이터 형식의 값 형식(예: IntegerType 데이터 형식의 StructField의 경우 Int) StructField(name, dataType, [nullable]). (4)
변체 변형 유형 VariantVal VariantType()
객체 지원되지 않음 지원되지 않음 지원되지 않음

R 프로그래밍 언어

SQL 형식 데이터 형식 값 유형 데이터 형식에 액세스하거나 만들기 위한 API
TINYINT (1바이트 정수 데이터 타입) 바이트타입 integer(1) byte
SMALLINT 쇼트타입 integer(1) 짧은
정수 인터저타입 정수 정수
BIGINT 롱타입 integer(1)
플로트 플롯타입 numeric(1) 플로트
더블 더블타입 숫자 두 배
DECIMAL(p,s) 데시말타입 지원되지 않음 지원되지 않음
문자열 스트링타입 문자 '문자열'
바이너리 바이너리 타입 원시 바이너리
불리언 불리언 타입 논리 bool
타임 스탬프 타임스탬프 유형 POSIXct 타임스탬프
TIMESTAMP_NTZ 타임스탬프NTZ유형 datetime.datetime TimestampNTZType()
날짜 날짜타입 날짜 날짜
연도-월 간격 연월간격유형 지원되지 않음 지원되지 않음
일 시간 간격 주간 시간 간격 유형 지원되지 않음 지원되지 않음
배열 배열 유형 벡터 또는 목록 list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
지도 맵타입 환경 list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
구조체 구조형 타입 명명된 목록 list(type='struct', fields=fields). 필드는 StructField의 Seq입니다. (4)
구조체 필드 이 필드의 데이터 형식의 값 형식(예: 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 값을 가질 수 있는지 여부를 나타냅니다. 기본값입니다.