Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Databricks SQL
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ű s szá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 pontos numerikus típusok a 10-es alapértékeket jelölik:
- 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:
- A numerikus típusok az összes numerikus adattípust jelölik:
- A dátum-idő típusok dátum- és időösszetevőket jelölnek:
- Az egyszerű típusok a singleton értékek megtartásával definiált 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: Databricks Runtime
Scala
A Spark SQL-adattípusok a csomagban org.apache.spark.sql.types
vannak 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.types
vannak definiálva. Adattípus eléréséhez vagy létrehozásához használja a következőben org.apache.spark.sql.types.DataTypes
megadott 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.types
vannak 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ő, ésendField
a típus jobb szélső mezője. "startField
,endField
érvényes értékei a0(MONTH)
és a1(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ő, ésendField
a típus jobb szélső mezője. Érvényes értékek a következők:startField
endField
0(DAY)
,1(HOUR)
,2(MINUTE)
.3(SECOND)
(4)StructType
-
StructType(fields)
Az értékeket egy olyan struktúra képviseli, amelyetStructField
(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 egyStructType
-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-enull
értékeket. Ez az alapértelmezett beállítás.