LOAD DATA
Dotyczy: Databricks Runtime
Ładuje dane do tabeli Hive SerDe z określonego katalogu lub pliku użytkownika. Jeśli zostanie określony katalog, wszystkie pliki z katalogu zostaną załadowane. Jeśli zostanie określony plik, zostanie załadowany tylko jeden plik. Ponadto instrukcja LOAD DATA
przyjmuje opcjonalną specyfikację partycji. Po określeniu partycji pliki danych (gdy źródło wejściowe jest katalogiem) lub pojedynczy plik (gdy źródło wejściowe jest plikiem) są ładowane do partycji tabeli docelowej.
Jeśli tabela jest buforowana, polecenie czyści buforowane dane tabeli i wszystkie jej zależności, które się do niej odwołują. Pamięć podręczna zostanie wypełniona z opóźnieniem, gdy tabela lub zależności będą uzyskiwane przy następnym dostępie.
Składnia
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
Parametry
path
Ścieżka systemu plików. Może to być ścieżka bezwzględna lub względna.
-
Identyfikuje tabelę do wstawienia. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji. Jeśli nie można odnaleźć tabeli usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .
-
Opcjonalny parametr określający partycję docelową dla wstawiania. Można również częściowo określić partycję.
LOKALNY
Jeśli zostanie określony, spowoduje
INPATH
to rozwiązanie problemu z lokalnym systemem plików zamiast domyślnego systemu plików, który jest zazwyczaj magazynem rozproszonym.ZASTĄPIĆ
Domyślnie nowe dane są dołączane do tabeli. Jeśli
OVERWRITE
jest używana, tabela jest zamiast tego zastępowana nowymi danymi.
Przykłady
-- 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