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

ينطبق على:وضع علامة 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 بايت.
ARRAY <elementType> يمثل القيم التي تتألف من سلسلة من العناصر بنوع elementType.
MAP < keyType,valueType > يمثل القيم التي تتكون من مجموعة من أزواج قيم المفاتيح.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > يمثل القيم مع البنية الموضحة بواسطة تسلسل من الحقول.

هام

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

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

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

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

ينطبق على:وضع علامة 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

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

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)
خريطه نوع الخريطة Dict MapType(keyType, valueType, [valueContainsNull]).(2)
البنيه نوع البنية قائمة أو مجموعة StructType(fields). الحقل هو Seq من StructField. (4)
حقل البنية نوع قيمة نوع بيانات هذا الحقل (على سبيل المثال، Int ل StructField مع نوع البيانات IntegerType) StructField(name, dataType, [nullable]).(4)

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 قيم. هذا هو الوضع الافتراضي.