Aracılığıyla paylaş


Veri türleri

Şunun için geçerlidir:Evet olarak işaretlendi Databricks SQL Evet olarak işaretlendi 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ü Description
BIGINT 8 bayt imzalı tamsayı sayılarını temsil eder.
BINARY 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.
DECIMAL(p,s) Maksimum duyarlık p ve sabit ölçek sile sayıları temsil eder.
DOUBLE 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.
VOID Yazılmamış NULL değerini temsil eder.
SMALLINT 2 bayt imzalı tamsayı sayılarını temsil eder.
STRING 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.
TINYINT 1 bayt imzalı tamsayı sayılarını temsil eder.
GEOGRAPHY(srid) Koordinat referans sistemi coğrafi (enlem ve boylam derece cinsinden) olan ve srid değeri tarafından tanımlanan coğrafya değerlerini temsil eder. srid değeri ANY olarak ayarlanırsa, koordinat referans sistemi türde sabit kodlanmaz ve çalışma zamanı değeri haline gelir.
GEOMETRY(srid) Koordinat referans sistemi Kartezyen olarak anlaşılan ve srid değeri ile tanımlanan geometri değerlerini temsil eder. srid değeri ANY olarak ayarlanırsa, koordinat referans sistemi türde sabit kodlanmaz ve çalışma zamanı değeri haline gelir.
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.
VARIANT Yarı yapılandırılmış verileri temsil eder.
OBJECT Bir alan kümesi tarafından açıklanan yapı ile VARIANT içindeki değerleri temsil eder.

Important

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:

Tamsayı sayısal türler

Tam sayısal türler, tam sayıları temsil eder.

Tam sayısal türler

Kesin sayısal türler, 10 tabanında sayıları temsil eder.

İkili kayan nokta türleri

İkili kayan nokta türleri, sayıların geniş bir aralığını kapsamak için üs ve ikili gösterim kullanır.

Sayısal türler

Sayısal türler tüm sayısal veri türlerini temsil eden:

Tarih-saat türleri

Tarih-saat türleri tarih ve saat bileşenlerini temsil eder:

Jeo-uzamsal türler

Jeo-uzamsal türler geometrik veya coğrafi nesneleri temsil eder:

Basit türler

Basit türler, tek değer tutularak tanımlanan türlerdir:

Karmaşık türler

Karmaşık türler, karmaşık veya basit türlerin birden çok bileşeninden oluşur:

Dil eşlemeleri

Şunlar için geçerlidir:Evet olarak işaretlendi 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
TINYINT ByteType Byte ByteType
SMALLINT ShortType Short ShortType
INT IntegerType Int IntegerType
BIGINT LongType Long LongType
FLOAT FloatType Float FloatType
DOUBLE DoubleType Double DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
STRING StringType String 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
yıl-ay aralığı YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
gün-saat aralığı DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) Coğrafya Türü org.apache.spark.unsafe.type.GeographyVal CoğrafyaTürü
GEOMETRY(srid) GeometryType org.apache.spark.unsafe.type.GeometryVal GeometryType
ARRAY ArrayType scala.collection.Seq DiziTürü(elemanTürü [, boşlukİçerir]). (2)
MAP MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]) (AnahtarTürü, DeğerTürü [, DeğerNull içerebilir]) (2)
STRUCT StructType org.apache.spark.sql.Row StructType(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 Int) StructField(ad, veriTürü [, boşOlabılır]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT 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 ByteType Byte veya bayt DataTypes.ByteType
SMALLINT ShortType kısa veya Kısa DataTypes.ShortType
INT IntegerType int veya Integer DataTypes.IntegerType
BIGINT LongType uzun veya Uzun DataTypes.LongType
FLOAT FloatType float veya Float DataTypes.FloatType
DOUBLE DoubleType çift veya Double DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale) (precision, sayının toplam basamak sayısını, scale ise ondalık basamak sayısını belirtir).
STRING StringType String DataTypes.StringType
BINARY BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType boolean veya 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
yıl-ay aralığı YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
gün-saat aralığı DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) CoğrafyaTürü org.apache.spark.unsafe.type.GeographyVal GeographyTipi
GEOMETRY(srid) GeometryType org.apache.spark.unsafe.type.GeometryVal GeometryType
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). 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
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Desteklenmiyor Desteklenmez Desteklenmez

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
TINYINT ByteType int veya long. (1) ByteType()
SMALLINT ShortType int veya long. (1) ShortType()
INT IntegerType int veya 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()
yıl-ay aralığı YearMonthIntervalType Desteklenmez Desteklenmez
gün-saat aralığı DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY(srid) Coğrafya Türü GeographyVal GeographyType()
GEOMETRY(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType liste, tuple veya dizi ArrayType(elementType, [containsNull]). (2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT StructType liste veya tuple StructType(fields). 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)
VARIANT VariantType VariantVal VariantType()
OBJECT 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 ByteType tamsayı (1) 'byte'
SMALLINT ShortType tamsayı (1) 'short'
INT IntegerType integer 'integer'
BIGINT LongType tamsayı (1) 'long'
FLOAT FloatType sayısal (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Desteklenmez Desteklenmez
STRING StringType character 'string'
BINARY BinaryType raw 'binary'
BOOLEAN BooleanType logical 'bool'
TIMESTAMP TimestampType POSIXct 'timestamp'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType Date 'date'
yıl-ay aralığı YearMonthIntervalType Desteklenmez Desteklenmez
gün-saat aralığı DayTimeIntervalType Desteklenmez Desteklenmez
GEOGRAPHY(srid) Desteklenmez Desteklenmez Desteklenmez
GEOMETRY(srid) Desteklenmez Desteklenmez Desteklenmez
ARRAY ArrayType vektör veya liste list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAP MapType environment list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT StructType adlandırılmış liste liste(tip='yapı', alanlar=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 tamsayı) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANT Desteklenmiyor Desteklenmez Desteklenmez
OBJECT 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.