بدء الاستخدام: استيعاب بيانات إضافية وإدراجها
ترشدك مقالة البدء هذه إلى استخدام دفتر ملاحظات Azure Databricks لاستيعاب ملف CSV يحتوي على بيانات إضافية لاسم الطفل في وحدة تخزين كتالوج Unity ثم استيراد بيانات اسم الطفل الجديد إلى جدول موجود باستخدام Python وSc scala وR.
هام
تعتمد مقالة بدء الاستخدام هذه على بدء الاستخدام: استيراد بيانات CSV وتصورها من دفتر ملاحظات. يجب إكمال الخطوات الواردة في هذه المقالة لإكمال هذه المقالة. للحصول على دفتر الملاحظات الكامل لمقالة بدء الاستخدام هذه، راجع استيراد دفاتر ملاحظات البيانات وتصورها.
المتطلبات
لإكمال المهام في هذه المقالة، يجب أن تفي بالمتطلبات التالية:
- يجب تمكين كتالوج Unity لمساحة العمل الخاصة بك. للحصول على معلومات حول بدء استخدام كتالوج Unity، راجع إعداد كتالوج Unity وإدارته.
- يجب أن يكون لديك الامتياز على
WRITE VOLUME
وحدة تخزين،USE SCHEMA
والامتياز على المخطط الأصل، والامتيازUSE CATALOG
على الكتالوج الأصل. - يجب أن يكون لديك إذن لاستخدام مورد حساب موجود أو إنشاء مورد حساب جديد. راجع بدء الاستخدام: إعداد الحساب ومساحة العمل أو راجع مسؤول Databricks.
تلميح
للحصول على دفتر ملاحظات مكتمل لهذه المقالة، راجع استيعاب دفاتر ملاحظات بيانات إضافية.
الخطوة 1: إنشاء دفتر ملاحظات جديد
لإنشاء دفتر ملاحظات في مساحة العمل، انقر فوق جديد في الشريط الجانبي، ثم انقر فوق دفتر الملاحظات. يتم فتح دفتر ملاحظات فارغ في مساحة العمل.
لمعرفة المزيد حول إنشاء دفاتر الملاحظات وإدارتها، راجع إدارة دفاتر الملاحظات.
الخطوة 2: تحديد المتغيرات
في هذه الخطوة، يمكنك تعريف المتغيرات لاستخدامها في مثال دفتر الملاحظات الذي تقوم بإنشائه في هذه المقالة.
انسخ التعليمات البرمجية التالية والصقها في خلية دفتر الملاحظات الفارغة الجديدة. استبدل
<catalog-name>
و<schema-name>
و<volume-name>
بأسماء الكتالوج والمخطط ووحدات التخزين لوحدة تخزين كتالوج Unity. استبدلtable_name
القيمة اختياريا باسم جدول من اختيارك. ستحفظ بيانات اسم الطفل في هذا الجدول لاحقا في هذه المقالة.اضغط
Shift+Enter
لتشغيل الخلية وإنشاء خلية فارغة جديدة.Python
catalog = "<catalog_name>" schema = "<schema_name>" volume = "<volume_name>" file_name = "new_baby_names.csv" table_name = "baby_names" path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume path_table = catalog + "." + schema print(path_table) # Show the complete path print(path_volume) # Show the complete path
Scala
val catalog = "<catalog_name>" val schema = "<schema_name>" val volume = "<volume_name>" val fileName = "new_baby_names.csv" val tableName = "baby_names" val pathVolume = s"/Volumes/${catalog}/${schema}/${volume}" val pathTable = s"${catalog}.${schema}" print(pathVolume) // Show the complete path print(pathTable) // Show the complete path
R
catalog <- "<catalog_name>" schema <- "<schema_name>" volume <- "<volume_name>" file_name <- "new_baby_names.csv" table_name <- "baby_names" path_volume <- paste0("/Volumes/", catalog, "/", schema, "/", volume, sep = "") path_table <- paste0(catalog, ".", schema, sep = "") print(path_volume) # Show the complete path print(path_table) # Show the complete path
الخطوة 3: إضافة ملف CSV جديد من البيانات إلى وحدة تخزين كتالوج Unity
تنشئ هذه الخطوة DataFrame باسم df
طفل جديد ل 2022 ثم تحفظ هذه البيانات في ملف CSV جديد في وحدة تخزين كتالوج Unity.
إشعار
تحاكي هذه الخطوة إضافة بيانات سنوية جديدة إلى البيانات الموجودة التي تم تحميلها للسنوات السابقة. في بيئة الإنتاج الخاصة بك، سيتم تخزين هذه البيانات المتزايدة في التخزين السحابي.
انسخ التعليمات البرمجية التالية والصقها في خلية دفتر الملاحظات الفارغة الجديدة. تنشئ هذه التعليمة البرمجية DataFrame مع بيانات اسم الطفل الإضافية، ثم تكتب تلك البيانات إلى ملف CSV في وحدة تخزين كتالوج Unity.
Python
data = [[2022, "CARL", "Albany", "M", 42]] df = spark.createDataFrame(data, schema="Year int, First_Name STRING, County STRING, Sex STRING, Count int") # display(df) (df.coalesce(1) .write .option("header", "true") .mode("overwrite") .csv(f"{path_volume}/{file_name}"))
Scala
val data = Seq((2022, "CARL", "Albany", "M", 42)) val columns = Seq("Year", "First_Name", "County", "Sex", "Count") val df = data.toDF(columns: _*) // display(df) df.coalesce(1) .write .option("header", "true") .mode("overwrite") .csv(f"{pathVolume}/{fileName}")
R
# Load the SparkR package that is already preinstalled on the cluster. library(SparkR) data <- data.frame(Year = 2022, First_Name = "CARL", County = "Albany", Sex = "M", Count = 42) df <- createDataFrame(data) # display(df) write.df(df, path = paste0(path_volume, "/", file_name), source = "csv", mode = "overwrite", header = "true")
اضغط
Shift+Enter
لتشغيل الخلية ثم انتقل إلى الخلية التالية.
الخطوة 4: تحميل البيانات إلى DataFrame من ملف CSV
إشعار
تحاكي هذه الخطوة تحميل البيانات من التخزين السحابي.
انسخ التعليمات البرمجية التالية والصقها في خلية دفتر ملاحظات فارغة. تحمل هذه التعليمة البرمجية بيانات أسماء الأطفال الجديدة في DataFrame جديد من ملف CSV.
Python
df1 = spark.read.csv(f"{path_volume}/{file_name}", header=True, inferSchema=True, sep=",") display(df1)
Scala
val df1 = spark.read .option("header", "true") .option("inferSchema", "true") .option("delimiter", ",") .csv(s"$pathVolume/$fileName") display(df1)
R
df1 <- read.df(paste0(path_volume, "/", file_name), source = "csv", header = TRUE, inferSchema = TRUE) display(df1)
اضغط
Shift+Enter
لتشغيل الخلية ثم انتقل إلى الخلية التالية.
الخطوة 5: إدراج في جدول موجود
انسخ التعليمات البرمجية التالية والصقها في خلية دفتر ملاحظات فارغة. تلحق هذه التعليمة البرمجية بيانات أسماء الأطفال الجديدة من DataFrame بالجدول الموجود.
Python
df.write.mode("append").insertInto(f"{path_table}.{table_name}") display(spark.sql(f"SELECT * FROM {path_table}.{table_name} WHERE Year = 2022"))
Scala
df1.write.mode("append").insertInto(s"${pathTable}.${tableName}") display(spark.sql(s"SELECT * FROM ${pathTable}.${tableName} WHERE Year = 2022"))
R
# The write.df function in R, as provided by the SparkR package, does not directly support writing to Unity Catalog. # In this example, you write the DataFrame into a temporary view and then use the SQL command to insert data from the temporary view to the Unity Catalog table createOrReplaceTempView(df1, "temp_view") sql(paste0("INSERT INTO ", path_table, ".", table_name, " SELECT * FROM temp_view")) display(sql(paste0("SELECT * FROM ", path_table, ".", table_name, " WHERE Year = 2022")))
اضغط
Ctrl+Enter
لتشغيل الخلية.
استيعاب دفاتر ملاحظات بيانات إضافية
استخدم أحد دفاتر الملاحظات التالية لتنفيذ الخطوات الواردة في هذه المقالة. استبدل <catalog-name>
و <schema-name>
و <volume-name>
بأسماء الكتالوج والمخطط ووحدات التخزين لوحدة تخزين كتالوج Unity. استبدل table_name
القيمة اختياريا باسم جدول من اختيارك.
Python
استيعاب بيانات إضافية وإدراجها باستخدام Python
Scala
استيعاب بيانات إضافية وإدراجها باستخدام Scala
R
استيعاب بيانات إضافية وإدراجها باستخدام R
الخطوات التالية
للتعرف على تنقية البيانات وتحسينها، راجع البدء: تحسين البيانات وتطهيرها.