أنواع البيانات

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

للاطلاع على القواعد التي تحكم كيفية حل التعارضات بين أنواع البيانات، راجع قواعد نوع بيانات SQL.

أنواع البيانات المعتمدة

يدعم Azure Databricks أنواع البيانات التالية:

نوع البيانات ‏‏الوصف
BIGINT يمثل أرقاما صحيحة موقعة من 8 بايت.
ثنائي يمثل قيم تسلسل البايت.
منطقيه يمثل القيم المنطقية.
تاريخ يمثل القيم التي تتضمن قيم الحقول السنة والشهر واليوم، دون منطقة زمنية.
DECIMAL(p,s) يمثل الأرقام ذات الدقة p القصوى والمقياس sالثابت .
مزدوج يمثل أرقام الفاصلة العائمة المزدوجة الدقة 8 بايت.
طفا يمثل أرقام الفاصلة العائمة أحادية الدقة 4 بايت.
الباحث يمثل أرقاما صحيحة موقعة من 4 بايت.
الفاصل الزمنيQualifier يمثل فواصل زمنية إما على مقياس الثوان أو الأشهر.
خلاء يمثل NULL غير المصمم.
SMALLINT يمثل أرقاما صحيحة موقعة من 2 بايت.
خيط يمثل قيم سلسلة الأحرف.
الطابع الزمني يمثل القيم التي تتضمن قيم الحقول السنة والشهر واليوم والساعة والدقيقة والثانية، مع المنطقة الزمنية المحلية لجلسة العمل.
TIMESTAMP_NTZ يمثل القيم التي تتضمن قيم الحقول السنة والشهر واليوم والساعة والدقيقة والثانية. يتم تنفيذ جميع العمليات دون أخذ أي منطقة زمنية في الاعتبار.
TINYINT يمثل أرقاما صحيحة موقعة من 1 بايت.
نوع عنصر الصفيف <> يمثل القيم التي تتألف من سلسلة من العناصر بنوع elementType.
MAP < keyType,valueType > يمثل القيم التي تتكون من مجموعة من أزواج قيم المفاتيح.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > يمثل القيم مع البنية الموضحة بواسطة تسلسل من الحقول.
متغير يمثل البيانات شبه المنظمة.
كائن يمثل القيم في VARIANT مع البنية الموضحة بواسطة مجموعة من الحقول.

هام

لا يدعم VOID Delta Lake النوع.

تصنيف نوع البيانات

يتم تجميع أنواع البيانات في الفئات التالية:

تعيينات اللغة

ينطبق على: وضع علامة Databricks Runtime

Scala

يتم تعريف أنواع بيانات Spark SQL في الحزمة org.apache.spark.sql.types. يمكنك الوصول إليها عن طريق استيراد الحزمة:

import org.apache.spark.sql.types._
نوع SQL نوع البيانات نوع القيمة واجهة برمجة التطبيقات للوصول إلى نوع البيانات أو إنشائه
TINYINT ByteType بايت ByteType
SMALLINT ShortType قصير ShortType
الباحث IntegerType Int IntegerType
BIGINT LongType طويل LongType
طفا FloatType Float FloatType
مزدوج DoubleType مزدوج DoubleType
DECIMAL(p,s) نوع عشري java.math.BigDecimal نوع عشري
خيط StringType السلسلة‬ StringType
ثنائي نوع ثنائي Array[Byte] نوع ثنائي
منطقيه BooleanType Boolean BooleanType
الطابع الزمني نوع الطابع الزمني java.sql.الطابع الزمني نوع الطابع الزمني
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
تاريخ DateType java.sql.Date DateType
الفاصل الزمني للشهر السنوي YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
الفاصل الزمني لليوم DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
صفيف نوع الصفيف scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
خريطة نوع الخريطة scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
البنيه نوع البنية org.apache.spark.sql.Row StructType(fields). الحقول هي Seq من StructField. 4.
حقل البنية نوع قيمة نوع البيانات لهذا الحقل (على سبيل المثال، Int ل StructField مع نوع البيانات IntegerType) StructField(name, dataType [, nullable]). 4
متغير نوع المتغير org.apache.spark.unsafe.type.VariantVal نوع المتغير
كائن غير معتمد غير مدعوم غير مدعوم

Java

يتم تعريف أنواع بيانات Spark SQL في الحزمة org.apache.spark.sql.types. للوصول إلى نوع بيانات أو إنشائه، استخدم أساليب المصنع المتوفرة في org.apache.spark.sql.types.DataTypes.

نوع SQL نوع البيانات نوع القيمة واجهة برمجة التطبيقات للوصول إلى نوع البيانات أو إنشائه
TINYINT ByteType بايت أو بايت DataTypes.ByteType
SMALLINT ShortType قصير أو قصير DataTypes.ShortType
الباحث IntegerType int أو Integer نوع البيانات.IntegerType
BIGINT LongType طويل أو طويل DataTypes.LongType
طفا FloatType عائم أو عائم DataTypes.FloatType
مزدوج DoubleType مزدوج أو مزدوج DataTypes.DoubleType
DECIMAL(p,s) نوع عشري java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
خيط StringType السلسلة‬ DataTypes.StringType
ثنائي نوع ثنائي byte[] DataTypes.BinaryType
منطقيه BooleanType منطقي أو منطقي DataTypes.BooleanType
الطابع الزمني نوع الطابع الزمني java.sql.الطابع الزمني DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
تاريخ DateType java.sql.Date DataTypes.DateType
الفاصل الزمني للشهر السنوي YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
الفاصل الزمني لليوم DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
صفيف نوع الصفيف ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
خريطة نوع الخريطة java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
البنيه نوع البنية org.apache.spark.sql.Row DataTypes.createStructType(fields). الحقول هي قائمة أو صفيف من StructField. 4
حقل البنية نوع قيمة نوع بيانات هذا الحقل (على سبيل المثال، int ل StructField مع نوع البيانات IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
متغير نوع المتغير org.apache.spark.unsafe.type.VariantVal نوع المتغير
كائن غير معتمد غير مدعوم غير مدعوم

Python

يتم تعريف أنواع بيانات Spark SQL في الحزمة pyspark.sql.types. يمكنك الوصول إليها عن طريق استيراد الحزمة:

from pyspark.sql.types import *
نوع SQL نوع البيانات نوع القيمة واجهة برمجة التطبيقات للوصول إلى نوع البيانات أو إنشائه
TINYINT ByteType int أو طويلة. (1) نوع البايت()
SMALLINT ShortType int أو طويلة. (1) ShortType()
الباحث IntegerType int أو طويل IntegerType()
BIGINT LongType طويل (1) LongType()
طفا FloatType عائم (1) FloatType()
مزدوج DoubleType عائم DoubleType()
DECIMAL(p,s) نوع عشري عشري. عشري DecimalType()
خيط StringType سلسلة StringType()
ثنائي نوع ثنائي بايتراي BinaryType()
منطقيه BooleanType منطقي نوع منطقي()
الطابع الزمني نوع الطابع الزمني datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
تاريخ DateType datetime.date DateType()
الفاصل الزمني للشهر السنوي YearMonthIntervalType غير مدعوم غير مدعوم
الفاصل الزمني لليوم DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
صفيف نوع الصفيف قائمة أو مجموعة أو صفيف ArrayType(elementType, [containsNull]).(2)
خريطة نوع الخريطة الإملاء MapType(keyType, valueType, [valueContainsNull]).(2)
البنيه نوع البنية قائمة أو مجموعة StructType(fields). الحقل هو Seq من StructField. (4)
حقل البنية نوع قيمة نوع بيانات هذا الحقل (على سبيل المثال، Int ل StructField مع نوع البيانات IntegerType) StructField(name, dataType, [nullable]).(4)
متغير نوع المتغير VariantVal VariantType()
كائن غير معتمد غير مدعوم غير مدعوم

R

نوع SQL نوع البيانات نوع القيمة واجهة برمجة التطبيقات للوصول إلى نوع البيانات أو إنشائه
TINYINT ByteType عدد صحيح (1) 'بايت'
SMALLINT ShortType عدد صحيح (1) 'قصير'
الباحث IntegerType integer "عدد صحيح"
BIGINT LongType عدد صحيح (1) "طويل"
طفا FloatType رقمي (1) "عائم"
مزدوج DoubleType عددي "مزدوج"
DECIMAL(p,s) نوع عشري غير مدعوم غير مدعوم
خيط StringType حرف "سلسلة"
ثنائي نوع ثنائي نيء "ثنائي"
منطقيه BooleanType منطقي 'bool'
الطابع الزمني نوع الطابع الزمني POSIXct "الطابع الزمني"
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
تاريخ DateType التاريخ "تاريخ"
الفاصل الزمني للشهر السنوي YearMonthIntervalType غير مدعوم غير مدعوم
الفاصل الزمني لليوم DayTimeIntervalType غير مدعوم غير مدعوم
صفيف نوع الصفيف متجه أو قائمة list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
خريطة نوع الخريطة بيئة list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
البنيه نوع البنية قائمة مسماة list(type='struct', fields=fields). الحقول هي Seq من StructField. (4)
حقل البنية نوع قيمة نوع البيانات لهذا الحقل (على سبيل المثال، عدد صحيح لحقل StructField مع نوع البيانات IntegerType) list(name=name, type=dataType, nullable=[nullable]).(4)
متغير غير معتمد غير مدعوم غير مدعوم
كائن غير معتمد غير مدعوم غير مدعوم

(1) يتم تحويل الأرقام إلى المجال في وقت التشغيل. تأكد من أن الأرقام ضمن النطاق.

(2) القيمة الاختيارية افتراضيا إلى TRUE.

(3) أنواع الفواصل الزمنية

  • YearMonthIntervalType([startField,] endField): يمثل فاصلا زمنيا لمدة شهر يتكون من مجموعة فرعية متجاورة من الحقول التالية:

    startField هو الحقل الموجود في أقصى اليسار، endField وهو الحقل الموجود في أقصى اليمين من النوع. القيم الصالحة ل startField و endField هي 0(MONTH) و 1(YEAR).

  • DayTimeIntervalType([startField,] endField): يمثل فاصلا زمنيا لليوم يتكون من مجموعة فرعية متجاورة من الحقول التالية:

    startField هو الحقل الموجود في أقصى اليسار، endField وهو الحقل الموجود في أقصى اليمين من النوع. القيم الصالحة ل startField و endField هي 0(DAY)و 1(HOUR)و 2(MINUTE)و 3(SECOND).

(4) StructType

  • StructType(fields) يمثل القيم ذات البنية الموضحة بواسطة تسلسل أو قائمة أو صفيف من StructField(حقول). لا يسمح بإدخال حقلين بالاسم نفسه.
  • StructField(name, dataType, nullable) يمثل حقلا StructTypeفي . تتم الإشارة إلى اسم الحقل بواسطة name. تتم الإشارة إلى نوع بيانات الحقل بواسطة نوع البيانات. nullable يشير إلى ما إذا كانت قيم هذه الحقول يمكن أن تحتوي على null قيم. هذا هو الوضع الافتراضي.