CARREGAR DADOS
Aplica-se a: Databricks Runtime
Carrega os dados para uma tabela SerDe do Hive a partir do diretório ou ficheiro especificado pelo utilizador. Se for especificado um diretório, todos os ficheiros do diretório serão carregados. Se for especificado um ficheiro, apenas o ficheiro único é carregado. Além disso, a LOAD DATA
instrução utiliza uma especificação de partição opcional. Quando uma partição é especificada, os ficheiros de dados (quando a origem de entrada é um diretório) ou o único ficheiro (quando a origem de entrada é um ficheiro) são carregados para a partição da tabela de destino.
Se a tabela estiver em cache, o comando limpa os dados em cache da tabela e todos os respetivos dependentes que se referem à mesma. A cache será preenchida preguiçosamente quando a tabela ou os dependentes forem acedidos da próxima vez.
Sintaxe
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
Parâmetros
caminho
Caminho do sistema de ficheiros. Pode ser um caminho absoluto ou relativo.
-
Identifica a tabela à qual pretende inserir. O nome não pode incluir uma especificação temporal. Se não for possível encontrar a tabela, o Azure Databricks gera um erro TABLE_OR_VIEW_NOT_FOUND .
-
Um parâmetro opcional que especifica uma partição de destino para a inserção. Também pode especificar apenas parcialmente a partição.
LOCAL
Se especificado, faz com que seja
INPATH
resolvido no sistema de ficheiros local, em vez do sistema de ficheiros predefinido, que é normalmente um armazenamento distribuído.SUBSTITUIR
Por predefinição, os novos dados são anexados à tabela. Se
OVERWRITE
for utilizada, a tabela é substituída por novos dados.
Exemplos
-- 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