Megosztás a következőn keresztül:


Adattípusok

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Az adattípusok közötti ütközések feloldását szabályozó szabályokért tekintse meg az SQL adattípus-szabályait.

Támogatott adattípusok

Az Azure Databricks a következő adattípusokat támogatja:

Adattípus Description
BIGINT 8 bájtos aláírt egész számokat képvisel.
BINARY Bájtsorozat-értékeket jelöl.
BOOLEAN Logikai értékeket jelöl.
DATE Olyan értékeket jelöl, amelyek az év, a hónap és a nap mezőiből állnak, időzóna nélkül.
DECIMAL(p,s) Maximális pontosságú p és rögzített léptékű sszámokat jelöl.
DOUBLE 8 bájtos dupla pontosságú lebegőpontos számokat jelöl.
FLOAT 4 bájtos egyszeres pontosságú lebegőpontos számokat jelöl.
INT 4 bájtos aláírt egész számokat jelöl.
INTERVAL intervalQualifier Az időintervallumokat másodpercek vagy hónapok skáláján jelöli.
VOID A nem beírt NULL értéket jelöli.
SMALLINT 2 bájtos aláírt egész számokat ábrázol.
STRING Karaktersztringértékeket jelöl.
TIMESTAMP Az év, hónap, nap, óra, perc és másodperc mezők értékeit jelöli, a munkamenet helyi időzónájával együtt.
TIMESTAMP_NTZ Az év, a hónap, a nap, az óra, a perc és a másodperc mezőiből álló értékeket jelöli. Minden műveletet anélkül hajtunk végre, hogy az időzónát figyelembe vesszük.
TINYINT 1 bájtos aláírt egész számokat jelöl.
GEOGRAPHY(srid) Olyan földrajzi értékeket jelöl, amelyek koordináta-referenciarendszere földrajzi (hosszúság és szélesség fokban), és az srid érték határozza meg. Ha a srid értéke ANY lesz, a koordináta-referenciarendszer nincs a típusban kódolva, és futásidőben határozzák meg.
GEOMETRIA(srid) Olyan geometriai értékeket jelöl, amelyek koordináta-referenciarendszerét Cartsianként értelmezik, és az srid érték határozza meg. Ha a srid értéke ANY lesz, a koordináta-referenciarendszer nincs a típusban kódolva, és futásidőben határozzák meg.
ARRAY < elementType > Olyan értékeket jelöl, amelyek az elemek sorozatából állnak, a elementType típusával.
MAP < keyType,valueType > Kulcs-érték párokból álló értékeket jelöl.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Értékeket jelöl a mezők sorozata által leírt struktúrával.
VARIANT Félig strukturált adatokat jelöl.
OBJECT Olyan értékeket képvisel a VARIANT, amelyek struktúráját egy mezőkészlet írja le.

Important

A Delta Lake nem támogatja a típust VOID .

Adattípus-besorolás

Az adattípusok a következő osztályokba vannak csoportosítva:

Integrál numerikus típusok

Az integrál numerikus típusok egész számokat jelölnek:

Pontos numerikus típusok

A pontos numerikus típusok a 10-es alapértékeket jelölik:

Bináris lebegőpontos típusok

A bináris lebegőpontos típusok a kitevőket és a bináris ábrázolásokat használják nagy számtartomány lefedésére:

Numerikus típusok

A numerikus típusok az összes numerikus adattípust jelölik:

Dátum-idő típusok

A dátum-idő típusok dátum- és időösszetevőket jelölnek:

Térinformatikai típusok

A térinformatikai típusok geometriai vagy földrajzi objektumokat jelölnek:

Egyszerű típusok

Az egyszerű típusok a singleton értékek megtartásával definiált típusok:

Összetett típusok

Az összetett típusok összetett vagy egyszerű típusok több összetevőből állnak:

Nyelvi leképezések

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Scala

A Spark SQL-adattípusok a csomagban org.apache.spark.sql.typesvannak definiálva. A csomag importálásával érheti el őket:

import org.apache.spark.sql.types._
SQL-típus Adattípus Érték típusa API az adattípus eléréséhez vagy létrehozásához
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 logikai BooleanType
TIMESTAMP TimestampType java.sql.Timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE DateType java.sql.Date DateType
év-hónap intervallum YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
napi időintervallum DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) FöldrajziTípus org.apache.spark.unsafe.type.GeographyVal Földrajzitípus
GEOMETRIA(srid) GeometryType org.apache.spark.unsafe.type.GeometryVal GeometryType
ARRAY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAP MapType scala.collection.Map Térképtípus(kulcsTípus, értékTípus [, értékTartalmazNullát]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fields). A mezők egy sorozata a StructField-nek. 4.
StructField A mező adattípusának értéktípusa (Például Int egy StructField esetében, ahol az adattípus IntegerType) StructField(név, adattípus [, lehet-null]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Nem támogatott Nem támogatott Nem támogatott

Java

A Spark SQL-adattípusok a csomagban org.apache.spark.sql.typesvannak definiálva. Adattípus eléréséhez vagy létrehozásához használja a következőben org.apache.spark.sql.types.DataTypesmegadott gyári metódusokat: .

SQL-típus Adattípus Érték típusa API az adattípus eléréséhez vagy létrehozásához
TINYINT ByteType bájt vagy Bájt DataTypes.ByteType
SMALLINT ShortType rövid vagy rövid DataTypes.ShortType
INT IntegerType int vagy egész szám DataTypes.IntegerType
BIGINT LongType hosszú vagy hosszú DataTypes.LongType
FLOAT FloatType lebegőpontos vagy lebegőpontos DataTypes.FloatType
DOUBLE DoubleType dupla vagy dupla DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(pontosság, skálázás).
STRING StringType String DataTypes.StringType
BINARY BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType logikai típus vagy 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
év-hónap intervallum YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
napi időintervallum DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) FöldrajziTípus org.apache.spark.unsafe.type.GeographyVal Földrajztípus
GEOMETRIA(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). a mezők a StructField listája vagy tömbje. 4
StructField A mező adattípusának értéktípusa (például int egy StructField esetén, amelynél az adattípus IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Nem támogatott Nem támogatott Nem támogatott

Python

A Spark SQL-adattípusok a csomagban pyspark.sql.typesvannak definiálva. A csomag importálásával érheti el őket:

from pyspark.sql.types import *
SQL-típus Adattípus Érték típusa API az adattípus eléréséhez vagy létrehozásához
TINYINT ByteType int vagy long. (1) ByteType()
SMALLINT ShortType int vagy long. (1) ShortType()
INT IntegerType int vagy long IntegerType()
BIGINT LongType hosszú (1) LongType()
FLOAT FloatType float (1) FloatType()
DOUBLE DoubleType float DoubleType()
DECIMAL(p,s) DecimalType decimal.Decimal DecimalType()
STRING StringType karakterlánc 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()
év-hónap intervallum YearMonthIntervalType Nem támogatott Nem támogatott
napi időintervallum DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY(srid) FöldrajziTípus GeographyVal GeographyType()
GEOMETRIA(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType lista, tuple vagy tömb ArrayType(elementType, [containsNull]). (2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT StructType lista vagy tömb StructType(fields). mező a StructField szekvenálása. (4)
StructField A mező adattípusának értéktípusa (például Int egy StructField esetén, amelynek adattípusa IntegerType) StructField(name, dataType; [nullable]). (4)
VARIANT VariantType VariantVal VariantType()
OBJECT Nem támogatott Nem támogatott Nem támogatott

R

SQL-típus Adattípus Érték típusa API az adattípus eléréséhez vagy létrehozásához
TINYINT ByteType egész szám (1) 'byte'
SMALLINT ShortType egész szám (1) 'short'
INT IntegerType egész szám 'integer'
BIGINT LongType egész szám (1) 'long'
FLOAT FloatType numerikus (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Nem támogatott Nem támogatott
STRING StringType karakter 'string'
BINARY BinaryType raw 'binary'
BOOLEAN BooleanType logical 'bool'
TIMESTAMP TimestampType POSIXct 'timestamp'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType Date 'date'
év-hónap intervallum YearMonthIntervalType Nem támogatott Nem támogatott
napi időintervallum DayTimeIntervalType Nem támogatott Nem támogatott
GEOGRAPHY(srid) Nem támogatott Nem támogatott Nem támogatott
GEOMETRIA(srid) Nem támogatott Nem támogatott Nem támogatott
ARRAY ArrayType vektor vagy lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAP MapType környezet list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT StructType névvel ellátott lista list(type='struct', fields=fields). A mezők egy sorozata a StructField-nek. (4)
StructField A mező adattípusának értéktípusa (például egész szám egy IntegerType adattípusú StructField esetén) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANT Nem támogatott Nem támogatott Nem támogatott
OBJECT Nem támogatott Nem támogatott Nem támogatott

(1) A számok futásidőben lesznek átalakítva a tartományba. Győződjön meg arról, hogy a számok tartományon belül vannak.

(2) Az opcionális érték alapértelmezés szerint a következő.TRUE

(3) Intervallumtípusok

  • YearMonthIntervalType([startField,] endField): Egy év-hónap intervallumot jelöl, amely a következő mezők egy összefüggő részhalmazából áll:

    startField a bal szélső mező, és endField a típus jobb szélső mezője. "startField, endField érvényes értékei a 0(MONTH) és a 1(YEAR)."

  • DayTimeIntervalType([startField,] endField): Egy nap-idő intervallumot jelöl, amely a következő mezők egy összefüggő részhalmazából áll:

    startField a bal szélső mező, és endField a típus jobb szélső mezője. Érvényes értékek a következők: startFieldendField0(DAY) , 1(HOUR), 2(MINUTE). 3(SECOND)

(4)StructType

  • StructType(fields) Az értékeket egy olyan struktúra képviseli, amelyet StructField(mezők) sorozata, listája vagy tömbje ír le. Két azonos nevű mező nem engedélyezett.
  • StructField(name, dataType, nullable) Egy mezőt képvisel egy StructType-ben. A mező nevét a következő jelöli: name. A mező adattípusát a dataType jelöli. nullable azt jelzi, hogy ezeknek a mezőknek az értékei tartalmazhatnak-e null értékeket. Ez az alapértelmezett beállítás.