Veri türleri

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Veri türleri arasındaki çakışmaların nasıl çözümleneceğine ilişkin kurallar için bkz . SQL veri türü kuralları.

Desteklenen veri türleri

Azure Databricks aşağıdaki veri türlerini destekler:

Veri Türü Açıklama
BİGİNT 8 bayt imzalı tamsayı sayılarını temsil eder.
IKİLİ Bayt dizisi değerlerini temsil eder.
BOOLEAN Boole değerlerini temsil eder.
DATE Saat dilimi olmadan yıl, ay ve gün alanlarının değerlerini içeren değerleri temsil eder.
ONDALıK(p,s) Maksimum duyarlık p ve sabit ölçek sile sayıları temsil eder.
ÇİFT 8 baytlık çift duyarlıklı kayan nokta sayılarını temsil eder.
FLOAT 4 baytlık tek duyarlıklı kayan nokta sayılarını temsil eder.
INT 4 bayt imzalı tamsayı sayılarını temsil eder.
INTERVAL intervalQualifier Saniye veya ay ölçeğinde zaman aralıklarını temsil eder.
VOİD Yazılmamış NULL değerini temsil eder.
SMALLİNT 2 bayt imzalı tamsayı sayılarını temsil eder.
DİZE Karakter dizesi değerlerini temsil eder.
TIMESTAMP Oturum yerel saat dilimiyle yıl, ay, gün, saat, dakika ve saniye alanlarının değerlerini içeren değerleri temsil eder.
TIMESTAMP_NTZ Yıl, ay, gün, saat, dakika ve saniye alanlarının değerlerini içeren değerleri temsil eder. Tüm işlemler hiçbir saat dilimi dikkate alınmadan gerçekleştirilir.
TİNYİNT 1 bayt imzalı tamsayı sayılarını temsil eder.
ARRAY <elementType> türünde elementTypebir öğe dizisini oluşturan değerleri temsil eder.
MAP < keyType,valueType > Anahtar-değer çiftleri kümesini oluşturan değerleri temsil eder.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Bir alan dizisi tarafından açıklanan yapıya sahip değerleri temsil eder.

Önemli

Delta Lake ve INTERVAL türlerini desteklemezVOID.

Veri türü sınıflandırması

Veri türleri aşağıdaki sınıflarda gruplandırılır:

Dil eşlemeleri

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks Runtime

Scala

Spark SQL veri türleri paketinde org.apache.spark.sql.typestanımlanır. Paketi içeri aktararak bunlara erişebilirsiniz:

import org.apache.spark.sql.types._
SQL türü Veri türü Değer türü Veri türüne erişmek veya veri türü oluşturmak için API
TİNYİNT ByteType Bayt ByteType
SMALLİNT ShortType Kısa ShortType
INT IntegerType Int IntegerType
BİGİNT LongType Uzun LongType
FLOAT FloatType Satışa Arz FloatType
ÇİFT DoubleType Çift DoubleType
ONDALıK(p,s) Ondalık Türü java.math.BigDecimal Ondalık Türü
DİZE StringType String StringType
IKİLİ BinaryType Dizi[Bayt] BinaryType
BOOLEAN BooleanType Boolean BooleanType
TIMESTAMP Zaman Damgası Türü java.sql.Timestamp Zaman Damgası Türü
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE Datetype java.sql.Date Datetype
yıl-ay aralığı YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
gün-saat aralığı DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
DİZİ ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
HARİTA MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
YAPI StructType org.apache.spark.sql.Satır StructType(alanlar). alanlar, StructField'ın Seq'larıdır. 4.
StructField Bu alanın veri türünün değer türü (Örneğin, IntegerType veri türüne sahip bir StructField için Int) StructField(name, dataType [, nullable]). 4

Java

Spark SQL veri türleri paketinde org.apache.spark.sql.typestanımlanır. Veri türüne erişmek veya veri türü oluşturmak için içinde org.apache.spark.sql.types.DataTypessağlanan fabrika yöntemlerini kullanın.

SQL türü Veri Türü Değer türü Veri türüne erişmek veya veri türü oluşturmak için API
TİNYİNT ByteType bayt veya Bayt DataTypes.ByteType
SMALLİNT ShortType kısa veya Kısa DataTypes.ShortType
INT IntegerType int veya Integer DataTypes.IntegerType
BİGİNT LongType uzun veya Uzun DataTypes.LongType
FLOAT FloatType float veya Float DataTypes.FloatType
ÇİFT DoubleType double veya Double DataTypes.DoubleType
ONDALıK(p,s) Ondalık Türü java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
DİZE StringType String DataTypes.StringType
IKİLİ BinaryType bayt[] DataTypes.BinaryType
BOOLEAN BooleanType boole veya Boole değeri DataTypes.BooleanType
TIMESTAMP Zaman Damgası Türü java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATE Datetype java.sql.Date DataTypes.DateType
yıl-ay aralığı YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
gün-saat aralığı DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
DİZİ ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
HARİTA MapType java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
YAPI StructType org.apache.spark.sql.Satır DataTypes.createStructType(alanlar). alanları bir Liste veya StructField dizisidir. 4
StructField Bu alanın veri türünün değer türü (Örneğin, IntegerType veri türüne sahip bir StructField için int) DataTypes.createStructField(name, dataType, nullable) 4

Python

Spark SQL veri türleri paketinde pyspark.sql.typestanımlanır. Paketi içeri aktararak bunlara erişebilirsiniz:

from pyspark.sql.types import *
SQL türü Veri türü Değer türü Veri türüne erişmek veya veri türü oluşturmak için API
TİNYİNT ByteType int veya long. (1) ByteType()
SMALLİNT ShortType int veya long. (1) ShortType()
INT IntegerType int veya long IntegerType()
BİGİNT LongType long (1) LongType()
FLOAT FloatType float (1) FloatType()
ÇİFT DoubleType kayan noktalı sayı DoubleType()
ONDALıK(p,s) Ondalık Türü On -da -lık. On -da -lık DecimalType()
DİZE StringType Dize StringType()
IKİLİ BinaryType Bytearray BinaryType()
BOOLEAN BooleanType ikili BooleanType()
TIMESTAMP Zaman Damgası Türü datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE Datetype datetime.date DateType()
yıl-ay aralığı YearMonthIntervalType Desteklenmez Desteklenmez
gün-saat aralığı DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
DİZİ ArrayType liste, tanımlama grubu veya dizi ArrayType(elementType, [containsNull]).(2)
HARİTA MapType Dict MapType(keyType, valueType, [valueContainsNull]).(2)
YAPI StructType liste veya tanımlama grubu StructType(alanlar). alanı bir StructField Seq'dur. (4)
StructField Bu alanın veri türünün değer türü (Örneğin, IntegerType veri türüne sahip bir StructField için Int) StructField(name, dataType, [nullable]).(4)

R

SQL türü Veri türü Değer türü Veri türüne erişmek veya veri türü oluşturmak için API
TİNYİNT ByteType tamsayı (1) 'bayt'
SMALLİNT ShortType tamsayı (1) 'short'
INT IntegerType integer 'tamsayı'
BİGİNT LongType tamsayı (1) 'long'
FLOAT FloatType sayısal (1) 'float'
ÇİFT DoubleType sayısal 'double'
ONDALıK(p,s) Ondalık Türü Desteklenmez Desteklenmez
DİZE StringType ekleyerek bu ayarı devre dışı bırakın 'string'
IKİLİ BinaryType ham 'ikili'
BOOLEAN BooleanType Mantıksal 'bool'
TIMESTAMP Zaman Damgası Türü POSIXct 'zaman damgası'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE Datetype Tarih 'date'
yıl-ay aralığı YearMonthIntervalType Desteklenmez Desteklenmez
gün-saat aralığı DayTimeIntervalType Desteklenmez Desteklenmez
DİZİ ArrayType vektör veya liste list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
HARİTA MapType ortamı list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
YAPI StructType adlandırılmış liste list(type='struct', fields=fields). alanlar, StructField'ın Seq'larıdır. (4)
StructField Bu alanın veri türünün değer türü (Örneğin, IntegerType veri türüne sahip bir StructField için tamsayı) list(name=name, type=dataType, nullable=[nullable]).(4)

(1) Sayılar çalışma zamanında etki alanına dönüştürülür. Sayıların aralık içinde olduğundan emin olun.

(2) İsteğe bağlı değer varsayılan olarak olur TRUE.

(3) Aralık türleri

  • YearMonthIntervalType([startField,] endField): Aşağıdaki alanların bitişik bir alt kümesinden oluşan yıl-ay aralığını temsil eder:

    startField en soldaki alan ve endField türün en sağdaki alanıdır. geçerli ve endField değerleri startField ve 1(YEAR)şeklindedir0(MONTH).

  • DayTimeIntervalType([startField,] endField): Aşağıdaki alanların bitişik bir alt kümesinden oluşan bir gün-saat aralığını temsil eder:

    startField en soldaki alan ve endField türün en sağdaki alanıdır. geçerli ve endField değerleri startField : 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Bir dizi, liste veya s dizisi (alanlar) tarafından açıklanan yapıya StructFieldsahip değerleri temsil eder. Aynı ada sahip iki alana izin verilmez.
  • StructField(name, dataType, nullable) içindeki bir StructTypealanı temsil eder. Bir alanın adı ile namegösterilir. Bir alanın veri türü dataType ile gösterilir. nullable , bu alanların değerlerinin değere sahip null olup olmadığını gösterir. Bu varsayılan seçenektir.