Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Untuk aturan yang mengatur bagaimana konflik antara jenis data diselesaikan, lihat Aturan jenis data SQL.
Tipe data yang didukung
Azure Databricks mendukung jenis data berikut:
| Jenis Data | Description |
|---|---|
| BIGINT | Mewakili nomor bilangan bulat bertanda 8 byte. |
| BINARY | Mewakili nilai dari urutan byte. |
| BOOLEAN | Mewakili nilai Boolean. |
| DATE | Mewakili nilai yang terdiri dari nilai bidang tahun, bulan dan hari, tanpa zona waktu. |
| DECIMAL(p,s) | Mewakili angka dengan presisi maksimum p dan skala tetap s. |
| DOUBLE | Mewakili bilangan titik kambang presisi ganda 8 byte. |
| FLOAT | Mewakili bilangan titik kambang presisi tunggal 4 byte. |
| INT | Mewakili bilangan bulat bertanda 4-byte. |
| INTERVAL intervalQualifier | Mewakili interval waktu baik pada skala detik atau bulan. |
| VOID | Mewakili nilai NULL yang tidak diketik. |
| SMALLINT | Mewakili bilangan bulat bertanda 2-byte. |
| STRING | Mewakili nilai string karakter. |
| TIMESTAMP | Mewakili nilai yang terdiri dari nilai bidang tahun, bulan, hari, jam, menit, dan detik, dengan zona waktu lokal sesi. |
| TIMESTAMP_NTZ | Mewakili nilai yang terdiri dari nilai bidang tahun, bulan, hari, jam, menit, dan detik. Semua operasi dilakukan tanpa memperhitungkan zona waktu apa pun. |
| TINYINT | Mewakili nomor bilangan bulat bertanda 1 byte. |
| GEOGRAPHY(srid) | Mewakili nilai geografi yang sistem referensi koordinatnya adalah geografis (garis bujur dan garis lintang dalam derajat) dan didefinisikan oleh srid nilai . Jika srid diatur ke ANY, sistem referensi koordinat tidak dikodekan secara permanen dalam tipe, dan menjadi nilai runtime. |
| GEOMETRI (srid) | Mewakili nilai geometri yang sistem referensi koordinatnya dipahami sebagai Kartesian dan didefinisikan oleh nilai srid. Jika srid diatur ke ANY, sistem referensi koordinat tidak dikodekan secara permanen dalam tipe, dan menjadi nilai runtime. |
| ARRAY < elementType > | Mewakili nilai yang terdiri dari urutan elemen dengan jenis elementType. |
| MAP < keyType,valueType > | Mewakili nilai yang terdiri dari sekumpulan pasangan kunci-nilai. |
| STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > | Mewakili nilai dengan struktur yang dijelaskan oleh urutan bidang. |
| VARIANT | Mewakili data semi-terstruktur. |
| OBJECT | Mewakili nilai dalam VARIANT dengan struktur yang dijelaskan oleh sekumpulan bidang. |
Important
Delta Lake tidak mendukung jenis tersebut VOID .
Klasifikasi jenis data
Jenis data dikelompokkan ke dalam kelas-kelas berikut:
Jenis numerik integral
Jenis numerik integral mewakili bilangan bulat:
Jenis numerik yang tepat
Jenis numerik yang tepat mewakili angka base-10:
Jenis titik mengambang biner
Jenis titik mengambang biner menggunakan eksponen dan representasi biner untuk mencakup sejumlah besar angka:
Jenis numerik
Jenis numerik mewakili semua jenis data numerik:
Jenis tanggal-waktu
Jenis tanggal-waktu mewakili komponen tanggal dan waktu:
Jenis geospasial
Jenis geospasial mewakili objek geometris atau geografis:
Jenis sederhana
Jenis sederhana adalah jenis yang didefinisikan dengan memiliki nilai singleton.
Jenis kompleks
Jenis kompleks terdiri dari beberapa komponen dari jenis kompleks atau sederhana:
Pemetaan bahasa
Berlaku untuk:
Databricks Runtime
Scala
Jenis data Spark SQL ditentukan dalam paket org.apache.spark.sql.types. Anda mengaksesnya dengan mengimpor paket:
import org.apache.spark.sql.types._
| Jenis SQL | Jenis data | Jenis nilai | API untuk mengakses atau membuat jenis data |
|---|---|---|---|
| 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 |
| interval bulan tahunan | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| interval waktu sehari | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Jenis Geografi | org.apache.spark.unsafe.type.GeographyVal | Jenis Geografi |
| GEOMETRI (srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | scala.collection.Seq | ArrayType(tipeElemen [, mengandungNull]). (2) |
| MAP | MapType | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | StructType(fields). bidang adalah Seq dari StructField. 4. |
| StructField | Jenis nilai dari jenis data bidang ini (Misalnya, Int untuk StructField dengan tipe data IntegerType) | StructField(name, dataType [, nullable]). 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Tidak Didukung | Tidak didukung | Tidak didukung |
Java
Jenis data Spark SQL ditentukan dalam paket org.apache.spark.sql.types. Untuk mengakses atau membuat tipe data, gunakan metode pabrik yang disediakan di org.apache.spark.sql.types.DataTypes.
| Jenis SQL | Jenis Data | Jenis nilai | API untuk mengakses atau membuat jenis data |
|---|---|---|---|
| TINYINT | ByteType | byte atau Byte | DataTypes.ByteType |
| SMALLINT | ShortType | short atau Short | DataTypes.ShortType |
| INT | IntegerType | int atau Integer | DataTypes.IntegerType |
| BIGINT | LongType | panjang atau Long | DataTypes.LongType |
| FLOAT | FloatType | float atau Float | DataTypes.FloatType |
| DOUBLE | DoubleType | ganda atau Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(presisi, skala). |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | boolean atau 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 |
| interval bulan tahunan | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| interval waktu sehari | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Jenis Geografi | org.apache.spark.unsafe.type.GeographyVal | Jenis Geografi |
| GEOMETRI (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). Fields adalah daftar atau array dari StructField. 4 |
| StructField | Jenis nilai dari jenis data bidang ini (Misalnya, int untuk StructField dengan jenis data IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Tidak Didukung | Tidak didukung | Tidak didukung |
Python
Jenis data Spark SQL ditentukan dalam paket pyspark.sql.types. Anda mengaksesnya dengan mengimpor paket:
from pyspark.sql.types import *
| Jenis SQL | Jenis data | Jenis nilai | API untuk mengakses atau membuat jenis data |
|---|---|---|---|
| TINYINT | ByteType | int atau long. (1) | ByteType() |
| SMALLINT | ShortType | int atau long. (1) | ShortType() |
| INT | IntegerType | int atau long | IntegerType() |
| BIGINT | LongType | panjang (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() |
| interval bulan tahunan | YearMonthIntervalType | Tidak didukung | Tidak didukung |
| interval waktu sehari | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Jenis Geografi | GeographyVal | GeographyType() |
| GEOMETRI (srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | list, tuple, atau array | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | StructType | daftar atau tuple | StructType(fields). bidang adalah Seq dari StructField. (4) |
| StructField | Jenis nilai dari jenis data bidang ini (Misalnya, Int untuk StructField dengan jenis data IntegerType) | StructField(name, dataType, [nullable]). (4) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | Tidak Didukung | Tidak didukung | Tidak didukung |
R
| Jenis SQL | Jenis data | Jenis nilai | API untuk mengakses atau membuat jenis data |
|---|---|---|---|
| TINYINT | ByteType | bilangan bulat (1) | 'byte' |
| SMALLINT | ShortType | bilangan bulat (1) | 'short' |
| INT | IntegerType | integer | 'integer' |
| BIGINT | LongType | bilangan bulat (1) | 'long' |
| FLOAT | FloatType | numerik (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Tidak didukung | Tidak didukung |
| 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' |
| interval bulan tahunan | YearMonthIntervalType | Tidak didukung | Tidak didukung |
| interval waktu sehari | DayTimeIntervalType | Tidak didukung | Tidak didukung |
| GEOGRAPHY(srid) | Tidak didukung | Tidak didukung | Tidak didukung |
| GEOMETRI (srid) | Tidak didukung | Tidak didukung | Tidak didukung |
| ARRAY | ArrayType | vektor atau daftar | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | environment | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | daftar bernama | list(type='struct', fields=fields). bidang adalah Seq dari StructField. (4) |
| StructField | Jenis nilai dari jenis data bidang ini (Misalnya, bilangan bulat untuk StructField dengan jenis data IntegerType) | list(name=name, type=dataType, nullable=[nullable]). (4) | |
| VARIANT | Tidak Didukung | Tidak didukung | Tidak didukung |
| OBJECT | Tidak Didukung | Tidak didukung | Tidak didukung |
(1) Angka dikonversi ke domain saat runtime. Pastikan bahwa angka berada dalam jangkauan.
(2) Nilai opsional default ke TRUE.
(3) Jenis interval
YearMonthIntervalType([startField,] endField): Mewakili interval tahun-bulan yang terdiri dari subset yang berdampingan dari bidang-bidang berikut:startFieldadalah bidang paling kiri, danendFieldmerupakan bidang paling kanan dari jenis tersebut. Nilai-nilai yang valid untukstartFielddanendFieldadalah0(MONTH)dan1(YEAR).DayTimeIntervalType([startField,] endField): Mewakili interval waktu siang-hari yang terdiri dari subset berturut-turut dari bidang-bidang berikut:startFieldadalah bidang paling kiri, danendFieldmerupakan bidang paling kanan dari jenis tersebut. NilaistartFielddanendFieldyang valid adalah0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)Mewakili nilai dengan struktur yang dijelaskan melalui urutan, daftar, atau arrayStructField(bidang). Dua bidang dengan nama yang sama tidak diizinkan. -
StructField(name, dataType, nullable)Mewakili bidang dalamStructType. Nama bidang ditunjukkan olehname. Jenis data bidang ditunjukkan oleh dataType.nullablemenunjukkan apakah nilai bidang ini dapat memiliki nilainull. Ini adalah default.