تحميل البيانات
ينطبق على: Databricks Runtime
تحميل البيانات في جدول Hive SerDe من الدليل أو الملف المحدد من قبل المستخدم. إذا تم تحديد دليل، تحميل كافة الملفات من الدليل. إذا تم تحديد ملف، تحميل الملف الفردي فقط. بالإضافة إلى ذلك، تأخذ العبارة LOAD DATA
مواصفات قسم اختيارية. عند تحديد قسم، يتم تحميل ملفات البيانات (عندما يكون مصدر الإدخال دليلا) أو الملف الفردي (عندما يكون مصدر الإدخال ملفا) في قسم الجدول الهدف.
إذا تم تخزين الجدول مؤقتا، يقوم الأمر بمسح البيانات المخزنة مؤقتا للجدول وكافة التوابع الخاصة به التي تشير إليه. سيتم تعبئة ذاكرة التخزين المؤقت ببطء عند الوصول إلى الجدول أو التوابع في المرة التالية.
بناء الجملة
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
المعلمات
المسار
مسار نظام الملفات. يمكن أن يكون إما مسارا مطلقا أو نسبيا.
-
تعريف الجدول الذي سيتم إدراجه فيه. يجب ألا يتضمن الاسم مواصفات زمنية. إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .
-
معلمة اختيارية تحدد قسما مستهدفا للإدراج. يمكنك أيضا تحديد القسم جزئيا فقط.
LOCAL
إذا تم تحديده، فإنه يؤدي
INPATH
إلى حل مقابل نظام الملفات المحلي، بدلا من نظام الملفات الافتراضي، والذي عادة ما يكون تخزينا موزعا.الكتابه
بشكل افتراضي، يتم إلحاق بيانات جديدة بالجدول. إذا
OVERWRITE
تم استخدام الجدول، بدلا من ذلك تتم الكتابة فوقه ببيانات جديدة.
الأمثلة
-- Example without partition specification.
-- Assuming the students table has already been created and populated.
> SELECT * FROM students;
name address student_id
--------- ---------------------- ----------
Amy Smith 123 Park Ave, San Jose 111111
> CREATE TABLE test_load (name VARCHAR(64), address VARCHAR(64), student_id INT) USING HIVE;
-- Assuming the students table is in '/user/hive/warehouse/'
> LOAD DATA LOCAL INPATH '/user/hive/warehouse/students' OVERWRITE INTO TABLE test_load;
> SELECT * FROM test_load;
name address student_id
--------- ---------------------- ----------
Amy Smith 123 Park Ave, San Jose 111111
-- Example with partition specification.
> CREATE TABLE test_partition (c1 INT, c2 INT, c3 INT) PARTITIONED BY (c2, c3);
> INSERT INTO test_partition PARTITION (c2 = 2, c3 = 3) VALUES (1);
> INSERT INTO test_partition PARTITION (c2 = 5, c3 = 6) VALUES (4);
> INSERT INTO test_partition PARTITION (c2 = 8, c3 = 9) VALUES (7);
> SELECT * FROM test_partition;
c1 c2 c3
--- --- ---
1 2 3
4 5 6
7 8 9
> CREATE TABLE test_load_partition (c1 INT, c2 INT, c3 INT) USING HIVE PARTITIONED BY (c2, c3);
-- Assuming the test_partition table is in '/user/hive/warehouse/'
> LOAD DATA LOCAL INPATH '/user/hive/warehouse/test_partition/c2=2/c3=3'
OVERWRITE INTO TABLE test_load_partition PARTITION (c2=2, c3=3);
> SELECT * FROM test_load_partition;
c1 c2 c3
--- --- ---
1 2 3