Veri türleri
Şunlar için geçerlidir: Databricks SQL 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 s ile 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 elementType 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][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:
- Tam sayı türleri tam sayıları temsil eden:
- Tam sayısal türler 10 tabanında sayıları temsil eden:
- İkili kayan nokta türleri, büyük bir sayı aralığını kapsamak için üsleri ve ikili gösterimi kullanır:
- Sayısal türler tüm sayısal veri türlerini temsil eder:
- Tarih-saat türleri tarih ve saat bileşenlerini temsil eder:
- Basit türler, tek değer tutularak tanımlanan türlerdir:
- Karmaşık türler, karmaşık veya basit türlerin birden çok bileşeninden oluşur:
Dil eşlemeleri
Şunlar için geçerlidir: Databricks Runtime
Scala
Spark SQL veri türleri paketinde org.apache.spark.sql.types
tanı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.types
tanımlanır. Veri türüne erişmek veya veri türü oluşturmak için içinde org.apache.spark.sql.types.DataTypes
sağ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.types
tanı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 veendField
türün en sağdaki alanıdır. geçerli veendField
değerleristartField
ve1(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 veendField
türün en sağdaki alanıdır. geçerli veendField
değerleristartField
:0(DAY)
,1(HOUR)
,2(MINUTE)
,3(SECOND)
.
(4)StructType
StructType(fields)
Bir dizi, liste veya s dizisi (alanlar) tarafından açıklanan yapıyaStructField
sahip değerleri temsil eder. Aynı ada sahip iki alana izin verilmez.StructField(name, dataType, nullable)
içindeki birStructType
alanı temsil eder. Bir alanın adı ilename
gösterilir. Bir alanın veri türü dataType ile gösterilir.nullable
, bu alanların değerlerinin değere sahipnull
olup olmadığını gösterir. Bu varsayılan seçenektir.
İlgili makaleler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin