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 Leírás
BIGINT 8 bájtos aláírt egész számokat képvisel.
BINÁRIS Bájtsorozat-értékeket jelöl.
boolean Logikai értékeket jelöl.
DÁTUM Olyan értékeket jelöl, amelyek az év, a hónap és a nap mezőiből állnak, időzóna nélkül.
DECIMÁLIS(p,s) Maximális pontosságú p és rögzített léptékű sszámokat jelöl.
DUAL 8 bájtos dupla pontosságú lebegőpontos számokat jelöl.
LEBEG 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 intervallum-minősítő Az időintervallumokat másodpercek vagy hónapok skáláján jelöli.
SEMMIS A nem beírt NULL értéket jelöli.
SMALLINT 2 bájtos aláírt egész számokat ábrázol.
HÚR Karaktersztringértékeket jelöl.
IDŐBÉLYEG 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.
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.
VÁLTOZAT Félig strukturált adatokat jelöl.
TÁRGY Olyan értékeket képvisel a VARIANT, amelyek struktúráját egy mezőkészlet írja le.

Fontos

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:

  • 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:

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 Bájttípus Bájt Bájttípus
SMALLINT Rövid típus Rövid Rövid típus
INT Egész számtípus Int Egész számtípus
BIGINT LongType Hosszú LongType
LEBEG LebegőpontosTípus Lebeg LebegőpontosTípus
DUAL KettősTípus Kétszeres KettősTípus
DECIMÁLIS(p,s) Decimális típus java.math.BigDecimal Decimális típus
HÚR KarakterláncTípus Sztring KarakterláncTípus
BINÁRIS Bináris Típus Tömb[bájt] Bináris Típus
boolean Logikai típus Logikai Logikai típus
IDŐBÉLYEG Időbélyegtípus java.sql.Timestamp Időbélyegtípus
TIMESTAMP_NTZ IdőbélyegNTZtípus java.time.LocalDateTime IdőbélyegNTZtípus
DÁTUM Dátumtípus java.sql.Date Dátumtípus
év-hónap intervallum ÉvHónapIntervallumTípus java.time.Period ÉvHónapIntervallumTípus (3)
napi időintervallum NappaliIdőintervallumTípus java.time.Duration NapIdőintervallumTípus (3)
TÖMB Tömbtípus scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
TÉRKÉP TérképTípus scala.collection.Map Térképtípus(kulcsTípus, értékTípus [, értékTartalmazNullát]). (2)
STRUKTÚRA StructType org.apache.spark.sql.Row StructType(mezők). 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
VÁLTOZAT Varianstípus org.apache.spark.unsafe.type.VariantVal Varianstípus
TÁRGY Nem támogatott Nem támogatott Nem támogatott

Jáva

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 Bájttípus bájt vagy Bájt Adattípusok.ByteTípus
SMALLINT Rövid típus rövid vagy rövid DataTypes.ShortType
INT Egész számtípus int vagy egész szám Adattípusok.EgészSzámTípus
BIGINT LongType hosszú vagy hosszú DataTypes.LongType (hosszú típus adattípus)
LEBEG LebegőpontosTípus lebegőpontos vagy lebegőpontos DataTypes.FloatType
DUAL KettősTípus dupla vagy dupla Adattípusok.DoubleType
DECIMÁLIS(p,s) Decimális típus java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(pontosság, skálázás).
HÚR KarakterláncTípus Sztring Adattípusok.StringType
BINÁRIS Bináris Típus bájt[] Adattípusok.BinaryType
boolean Logikai típus logikai típus vagy Boolean DataTypes.BooleanType
IDŐBÉLYEG Időbélyegtípus java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ IdőbélyegNTZtípus java.time.LocalDateTime DataTypes.TimestampNTZType
DÁTUM Dátumtípus java.sql.Date Adattípusok.DátumTípus
év-hónap intervallum ÉvHónapIntervallumTípus java.time.Period ÉvHónapIntervallumTípus (3)
napi időintervallum NappaliIdőintervallumTípus java.time.Duration NapIdőintervallumTípus (3)
TÖMB Tömbtípus ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
TÉRKÉP TérképTípus java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTÚRA StructType org.apache.spark.sql.Row DataTypes.createStructType(mezők). 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(név, adattípus, nullálható) 4
VÁLTOZAT Varianstípus org.apache.spark.unsafe.type.VariantVal Varianstípus
TÁRGY Nem támogatott Nem támogatott Nem támogatott

Piton

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 Bájttípus int vagy long. (1) ByteType()
SMALLINT Rövid típus int vagy long. (1) ShortType()
INT Egész számtípus int vagy long IntegerType()
BIGINT LongType hosszú (1) LongType()
LEBEG LebegőpontosTípus lebegőpontos (1) FloatType()
DUAL KettősTípus úsztat DoubleType()
DECIMÁLIS(p,s) Decimális típus Decimal.Decimális DecimalType()
HÚR KarakterláncTípus húr StringType()
BINÁRIS Bináris Típus bájtarray BinaryType()
boolean Logikai típus logikai BooleanType()
IDŐBÉLYEG Időbélyegtípus datetime.datetime TimestampType()
TIMESTAMP_NTZ IdőbélyegNTZtípus datetime.datetime TimestampNTZType()
DÁTUM Dátumtípus datetime.date (dátum objektum a datetime modulban) DateType()
év-hónap intervallum ÉvHónapIntervallumTípus Nem támogatott Nem támogatott
napi időintervallum NappaliIdőintervallumTípus datetime.timedelta NapIdőintervallumTípus (3)
TÖMB Tömbtípus lista, tuple vagy tömb ArrayType(elementType, [containsNull]). (2)
TÉRKÉP TérképTípus szótár MapType(kulcstípus, értéktípus, [értékNulltTartalmazhat]).(2)
STRUKTÚRA StructType lista vagy tömb StructType(mezők). 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)
VÁLTOZAT Varianstípus VariantVal VariánsTípus()
TÁRGY 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 Bájttípus egész szám (1) "bájt"
SMALLINT Rövid típus egész szám (1) rövid
INT Egész számtípus egész szám "egész szám"
BIGINT LongType egész szám (1) 'hosszú'
LEBEG LebegőpontosTípus numerikus (1) "lebegőpontos"
DUAL KettősTípus Numerikus "dupla"
DECIMÁLIS(p,s) Decimális típus Nem támogatott Nem támogatott
HÚR KarakterláncTípus karakter "sztring"
BINÁRIS Bináris Típus nyers "bináris"
boolean Logikai típus logikus "bool"
IDŐBÉLYEG Időbélyegtípus POSIXct "időbélyeg"
TIMESTAMP_NTZ IdőbélyegNTZtípus datetime.datetime TimestampNTZType()
DÁTUM Dátumtípus Dátum "dátum"
év-hónap intervallum ÉvHónapIntervallumTípus Nem támogatott Nem támogatott
napi időintervallum NappaliIdőintervallumTípus Nem támogatott Nem támogatott
TÖMB Tömbtípus vektor vagy lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
TÉRKÉP TérképTípus környezet list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUKTÚRA StructType névvel ellátott lista lista(típus='struktúra', mezők=mezők). 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)
VÁLTOZAT Nem támogatott Nem támogatott Nem támogatott
TÁRGY 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.