Bagikan melalui


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 dari 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.
DOBEL Mewakili bilangan titik kambang presisi ganda 8 byte.
MENGAPUNG 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.
KOSONG 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.
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.
VARIAN Mewakili data semi-terstruktur.
BENDA Mewakili nilai dalam VARIANT dengan struktur yang dijelaskan oleh sekumpulan bidang.

Penting

Delta Lake tidak mendukung jenis tersebut VOID .

Klasifikasi jenis data

Jenis data dikelompokkan ke dalam kelas-kelas berikut:

  • Jenis titik mengambang biner menggunakan eksponen dan representasi biner untuk mencakup sejumlah besar angka:

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 Bita ByteType
SMALLINT ShortType Pendek ShortType
INT Tipe Integer Integer Tipe Integer
BIGINT Tipe Panjang Panjang Tipe Panjang
MENGAPUNG FloatType Mengapung FloatType
DOBEL DoubleType Ganda DoubleType
DECIMAL(p,s) TipeDesimal java.math.BigDecimal TipeDesimal
string StringType string StringType
BINER BinaryType Array[Bita] BinaryType
BOOLEAN BooleanType Boolean (tipe data yang hanya memiliki dua nilai: true atau false) BooleanType
TIMESTAMP Tipe Penanda Waktu java.sql.Timestamp Tipe Penanda Waktu
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
TANGGAL TipeTanggal java.sql.Date TipeTanggal
interval bulan tahunan JenisIntervalTahunBulan java.time.Period JenisIntervalTahunBulan (3)
interval waktu sehari JenisIntervalWaktuSiang java.time.Duration DayTimeIntervalType (3)
ARRAY ArrayType scala.collection.Seq ArrayType(tipeElemen [, mengandungNull]). (2)
PETA JenisPeta 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
VARIAN JenisVarian org.apache.spark.unsafe.type.VariantVal JenisVarian
BENDA Tidak Didukung Tidak didukung Tidak didukung

Jawa

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 Tipe Integer int atau Integer DataTypes.IntegerType
BIGINT Tipe Panjang panjang atau Long DataTypes.LongType
MENGAPUNG FloatType float atau Float DataTypes.FloatType
DOBEL DoubleType ganda atau Double DataTypes.DoubleType
DECIMAL(p,s) TipeDesimal java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(presisi, skala).
string StringType string DataTypes.StringType
BINER BinaryType (byte[]) DataTypes.BinaryType
BOOLEAN BooleanType boolean atau Boolean DataTypes.BooleanType
TIMESTAMP Tipe Penanda Waktu java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
TANGGAL TipeTanggal java.sql.Date TipeData.TanggalType
interval bulan tahunan JenisIntervalTahunBulan java.time.Period JenisIntervalTahunBulan (3)
interval waktu sehari JenisIntervalWaktuSiang java.time.Duration DayTimeIntervalType (3)
ARRAY ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
PETA JenisPeta java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTUR 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
VARIAN JenisVarian org.apache.spark.unsafe.type.VariantVal JenisVarian
BENDA Tidak Didukung Tidak didukung Tidak didukung

Phyton

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 Tipe Integer int atau long IntegerType()
BIGINT Tipe Panjang panjang (1) LongType()
MENGAPUNG FloatType float (1) FloatType()
DOBEL DoubleType mengambang DoubleType()
DECIMAL(p,s) TipeDesimal desimal. Desimal DecimalType()
string StringType benang StringType()
BINER BinaryType bytearray BinaryType()
BOOLEAN BooleanType bool BooleanType()
TIMESTAMP Tipe Penanda Waktu datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
TANGGAL TipeTanggal datetime.date (tanggal waktu) DateType()
interval bulan tahunan JenisIntervalTahunBulan Tidak didukung Tidak didukung
interval waktu sehari JenisIntervalWaktuSiang datetime.timedelta DayTimeIntervalType (3)
ARRAY ArrayType list, tuple, atau array ArrayType(elementType, [containsNull]). (2)
PETA JenisPeta kamus MapType(keyType, valueType, [valueContainsNull]). (2)
STRUKTUR StructType daftar 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)
VARIAN JenisVarian VarianVal VariantType()
BENDA 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) pendek
INT Tipe Integer Bilangan bulat 'bilangan bulat'
BIGINT Tipe Panjang bilangan bulat (1) 'panjang'
MENGAPUNG FloatType numerik (1) 'mengapung'
DOBEL DoubleType numerik 'ganda'
DECIMAL(p,s) TipeDesimal Tidak didukung Tidak didukung
string StringType karakter string
BINER BinaryType mentah 'biner'
BOOLEAN BooleanType logis 'bool'
TIMESTAMP Tipe Penanda Waktu POSIXct 'tanda waktu'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
TANGGAL TipeTanggal Tanggal 'tanggal'
interval bulan tahunan JenisIntervalTahunBulan Tidak didukung Tidak didukung
interval waktu sehari JenisIntervalWaktuSiang Tidak didukung Tidak didukung
ARRAY ArrayType vektor atau daftar list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
PETA JenisPeta lingkungan list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUKTUR StructType daftar yang diberi nama daftar(tipe='struct', bidang=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)
VARIAN Tidak Didukung Tidak didukung Tidak didukung
BENDA Tidak Didukung Tidak didukung Tidak didukung

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

(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-nilai yang valid untuk startField dan endField adalah 0(MONTH) dan 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Mewakili interval waktu siang-hari yang terdiri dari subset berturut-turut dari bidang-bidang berikut:

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

(4)StructType

  • StructType(fields) Mewakili nilai dengan struktur yang dijelaskan melalui urutan, daftar, atau array StructField (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 apakah nilai bidang ini dapat memiliki nilai null. Ini adalah default.