Jenis data

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya 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 Deskripsi
BIGINT Mewakili nomor bilangan bulat bertanda 8 byte.
BINER Mewakili nilai urutan byte.
BOOLEAN Mewakili nilai Boolean.
TANGGAL 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.
STEMPEL WAKTU 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.
ARRAY <elementType> Mewakili nilai yang terdiri dari urutan elemen dengan jenis elementType.
MAP < keyType,valueType > Mewakili nilai yang terdiri dari set pasangan kunci-nilai.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Mewakili nilai dengan struktur yang dijelaskan oleh urutan bidang.

Penting

Delta Lake tidak mendukung VOID dan INTERVAL mengetikan.

Klasifikasi jenis data

Jenis data dikelompokkan ke dalam kelas-kelas berikut:

Pemetaan bahasa

Berlaku untuk:centang ditandai ya 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 Pendek ShortType
INT IntegerType Int IntegerType
BIGINT LongType Panjang LongType
FLOAT FloatType Float FloatType
DOUBLE DoubleType Laju DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
STRING StringType String StringType
BINER BinaryType Array[Byte] BinaryType
BOOLEAN BooleanType Boolean BooleanType
STEMPEL WAKTU TimestampType java.sql.Timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
TANGGAL DateType java.sql.Date DateType
interval bulan tahunan YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
interval waktu sehari DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
ARRAY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
PETA MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTUR StructType org.apache.spark.sql.Row StructType(bidang). 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

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 long atau Long DataTypes.LongType
FLOAT FloatType float atau Float DataTypes.FloatType
DOUBLE DoubleType double atau Double DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
STRING StringType String DataTypes.StringType
BINER BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType boolean atau Boolean DataTypes.BooleanType
STEMPEL WAKTU TimestampType java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
TANGGAL DateType java.sql.Date DataTypes.DateType
interval bulan tahunan YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
interval waktu sehari DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
ARRAY ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
PETA MapType java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
STRUKTUR StructType org.apache.spark.sql.Row DataTypes.createStructType(fields). bidang adalah Daftar atau array StructField. 4
StructField Jenis nilai dari jenis data bidang ini (Misalnya, int untuk StructField dengan jenis data IntegerType) DataTypes.createStructField(name, dataType, nullable) 4

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 panjang. (1) ByteType()
SMALLINT ShortType int atau panjang. (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()
BINER BinaryType bytearray BinaryType()
BOOLEAN BooleanType bool BooleanType()
STEMPEL WAKTU TimestampType datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
TANGGAL DateType datetime.date DateType()
interval bulan tahunan YearMonthIntervalType Tidak didukung Tidak didukung
interval waktu sehari DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
ARRAY ArrayType list, tuple, atau array ArrayType(elementType, [containsNull]).(2)
PETA MapType kamus MapType(keyType, valueType, [valueContainsNull]).(2)
STRUKTUR StructType list atau tuple StructType(bidang). 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)

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’
BINER BinaryType mentah ‘binary’
BOOLEAN BooleanType logis ‘bool’
STEMPEL WAKTU TimestampType POSIXct ‘timestamp’
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
TANGGAL DateType Tanggal ‘date’
interval bulan tahunan YearMonthIntervalType Tidak didukung Tidak didukung
interval waktu sehari DayTimeIntervalType Tidak didukung Tidak didukung
ARRAY ArrayType vektor atau list list(type=’array’, elementType=elementType, containsNull=[containsNull]).(2)
PETA MapType lingkungan list(type=’map’, keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUKTUR StructType daftar yang dinamai list(jenis='struktur', bidang=bidang). 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=nama, jenis=dataType, nullable=[nullable]).(4)

(1) Angka dikonversi ke domain saat runtime. Pastikan bahwa angka berada dalam rentang.

(2) Nilai opsional ditetapkan secara default ke TRUE.

(3) Jenis interval

  • YearMonthIntervalType([startField,] endField): Mewakili interval tahun-bulan yang terdiri dari subset yang berdampingan dari bidang-bidang berikut:

    startField adalah bidang paling kiri, dan endField merupakan bidang paling kanan dari jenis tersebut. Nilai valid dari startField dan endField adalah 0(MONTH) dan 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Mewakili interval tahun-bulan yang terdiri dari subset yang berdampingan dari bidang-bidang berikut:

    startField adalah bidang paling kiri, dan endField merupakan bidang paling kanan dari jenis tersebut. Nilai valid dari startField dan endField adalah 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Mewakili nilai dengan struktur yang dijelaskan oleh urutan, daftar, atau larik StructFields (bidang). Dua bidang dengan nama yang sama tidak diizinkan.
  • StructField(name, dataType, nullable) Mewakili bidang dalam StructType. Nama bidang ditunjukkan oleh name. Jenis data bidang ditunjukkan oleh dataType. nullable menunjukkan jika nilai dari bidang ini dapat memiliki nilai null. Ini adalah default.