Aracılığıyla paylaş


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
BIGINT 8 bayt imzalı tamsayı sayılarını temsil eder.
İKİLİ Bayt dizisi değerlerini temsil eder.
BOOLEAN Boole değerlerini temsil eder.
TARİH 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.
YÜZMEK 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.
BOŞLUK Yazılmamış NULL değerini temsil eder.
SMALLINT 2 bayt imzalı tamsayı sayılarını temsil eder.
DİZGİ Karakter dizesi değerlerini temsil eder.
ZAMAN DAMGASI 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.
TINYINT 1 bayt imzalı tamsayı sayılarını temsil eder.
ARRAY < elementType > elementTypetürüne sahip bir öğ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][AÇIKLAMA str][, ...]] > Bir alan dizisi tarafından açıklanan yapıya sahip değerleri temsil eder.
VARYANT Yarı yapılandırılmış verileri temsil eder.
NESNE Bir alan kümesi tarafından açıklanan yapı ile VARIANT içindeki değerleri temsil eder.

Önemli

Delta Lake, VOID türünü desteklemiyor.

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

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

  • İkili kayan nokta türleri, üsleri ve ikili gösterimi kullanarak geniş bir sayı aralığını kapsar:

Dil eşlemeleri

Şunlar için geçerlidir:işaretli evet Databricks Runtime

Scala programlama dili

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
TINYINT BaytTürü Bayt BaytTürü
SMALLINT KısaTip Kısa KısaTip
INT TamsayıTipi Int TamsayıTipi
BIGINT UzunTip Uzun UzunTip
YÜZMEK YüzenTip Yüzmek YüzenTip
ÇİFT ÇiftTip Çift ÇiftTip
ONDALıK(p,s) OndalıkTürü java.math.BigDecimal OndalıkTürü
DİZGİ DizeTürü Dize DizeTürü
İKİLİ İkiliTip Dizi[Bayt] İkiliTip
BOOLEAN Boolean türü Boolean (Boole Mantığı) Boolean türü
ZAMAN DAMGASI Zaman Damgası Türü java.sql.Timestamp Zaman Damgası Türü
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
TARİH TarihTürü java.sql.Date TarihTürü
yıl-ay aralığı YılAyAralığıTürü java.time.Period YılAyAralıkTürü (3)
gün-saat aralığı GünZamanAralığıTürü java.time.Duration GünZamanAralığıTipi (3)
DİZİ DiziTürü scala.collection.Seq DiziTürü(elemanTürü [, boşlukİçerir]). (2)
HARİTA Harita Türü scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
YAPI YapıTürü 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(ad, veriTürü [, boşOlabılır]). 4
VARYANT VaryantTürü org.apache.spark.unsafe.type.VariantVal VaryantTürü
NESNE Desteklenmiyor Desteklenmez Desteklenmez

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
TINYINT BaytTürü Byte veya bayt DataTypes.ByteType
SMALLINT KısaTip kısa veya Kısa VeriTipleri.ShortType
INT TamsayıTipi int veya Integer VeriTipleri.TamsayıTipi
BIGINT UzunTip uzun veya Uzun DataTypes.LongType
YÜZMEK YüzenTip float veya Float DataTypes.FloatType (Kayan Nokta Türü)
ÇİFT ÇiftTip çift veya Double DataTürleri.ÇiftTip
ONDALıK(p,s) OndalıkTürü java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
DİZGİ DizeTürü Dize DataTypes.StringType (Dize Türü)
İKİLİ İkiliTip bayt[] DataTypes.BinaryType (İkili Tür)
BOOLEAN Boolean türü boolean veya Boolean VeriTürleri.BooleanTürü
ZAMAN DAMGASI Zaman Damgası Türü java.sql.Timestamp DataTypes.ZamanDamgasiTuru
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
TARİH TarihTürü java.sql.Date DataTypes.DateType (Tarih Türü)
yıl-ay aralığı YılAyAralığıTürü java.time.Period YılAyAralıkTürü (3)
gün-saat aralığı GünZamanAralığıTürü java.time.Duration GünZamanAralığıTipi (3)
DİZİ DiziTürü ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
HARİTA Harita Türü java.util.Map (Java kütüphanesi öğesi) DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
YAPI YapıTürü org.apache.spark.sql.Satır DataTypes.createStructType(alanlar). alanlar, bir Liste veya StructField dizisi olarak ifade edilir. 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
VARYANT VaryantTürü org.apache.spark.unsafe.type.VariantVal VaryantTürü
NESNE Desteklenmiyor Desteklenmez Desteklenmez

Piton

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
TINYINT BaytTürü int veya long. (1) ByteType()
SMALLINT KısaTip int veya long. (1) ShortType()
INT TamsayıTipi int veya long IntegerType()
BIGINT UzunTip long (1) LongType()
YÜZMEK YüzenTip float (1) FloatType()
ÇİFT ÇiftTip yüzmek DoubleType()
ONDALıK(p,s) OndalıkTürü Ondalık.Decimal DecimalType()
DİZGİ DizeTürü Dize StringType()
İKİLİ İkiliTip bytearray BinaryType()
BOOLEAN Boolean türü ikili BooleanType()
ZAMAN DAMGASI Zaman Damgası Türü datetime.datetime TimestampType()
TIMESTAMP_NTZ ZamanDamgasıNTZTürü datetime.datetime TimestampNTZType()
TARİH TarihTürü datetime.date DateType()
yıl-ay aralığı YılAyAralığıTürü Desteklenmez Desteklenmez
gün-saat aralığı GünZamanAralığıTürü datetime.timedelta GünZamanAralığıTipi (3)
DİZİ DiziTürü liste, tuple veya dizi ArrayType(elementType, [containsNull]). (2)
HARİTA Harita Türü Dict MapType(keyType, valueType, [valueContainsNull]). (2)
YAPI YapıTürü liste veya tuple StructType(alanlar). alan, StructField dizisinin bir bileşenidir. (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)
VARYANT VaryantTürü VariantVal VariantType()
NESNE Desteklenmiyor Desteklenmez Desteklenmez

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
TINYINT BaytTürü tamsayı (1) 'bayt'
SMALLINT KısaTip tamsayı (1) kısa
INT TamsayıTipi tamsayı 'tamsayı'
BIGINT UzunTip tamsayı (1) uzun
YÜZMEK YüzenTip sayısal (1) yüzmek
ÇİFT ÇiftTip sayısal çift
ONDALıK(p,s) OndalıkTürü Desteklenmez Desteklenmez
DİZGİ DizeTürü karakter 'dize'
İKİLİ İkiliTip ham 'ikili'
BOOLEAN Boolean türü mantıklı Boolean
ZAMAN DAMGASI Zaman Damgası Türü POSIXct 'zaman damgası'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
TARİH TarihTürü Tarih tarih
yıl-ay aralığı YılAyAralığıTürü Desteklenmez Desteklenmez
gün-saat aralığı GünZamanAralığıTürü Desteklenmez Desteklenmez
DİZİ DiziTürü vektör veya liste list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
HARİTA Harita Türü çevre list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
YAPI YapıTürü 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)
VARYANT Desteklenmiyor Desteklenmez Desteklenmez
NESNE Desteklenmiyor Desteklenmez Desteklenmez

(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. startField ve endField için geçerli değerler 0(MONTH) ve 1(YEAR)'dir.

  • 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 startField ve endField değerleri 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ı isme sahip iki alana izin verilmiyor.
  • 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 null değerlere sahip olup olmadığını gösterir. Bu varsayılan seçenektir.