Bagikan melalui


Jenis data

Berlaku untuk:Ditandai centang ya Databricks SQL Ditandai centang 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 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: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 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:

    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.