LOAD DATA
S’applique à : Databricks Runtime
Charge les données dans une table Hive SerDe à partir du répertoire ou du fichier spécifié par l’utilisateur. Si un répertoire est spécifié, tous les fichiers du répertoire sont chargés. Si un fichier est spécifié, seul le fichier unique est chargé. En outre, l'instruction LOAD DATA
prend une spécification de partition facultative. Lorsqu’une partition est spécifiée, les fichiers de données (lorsque la source d’entrée est un répertoire) ou le fichier unique (lorsque la source d’entrée est un fichier) sont chargés dans la partition de la table cible.
Si la table est mise en cache, la commande efface les données mises en cache de la table et tous ses dépendants qui y font référence. Le cache est rempli de manière différée lors de l’accès suivant à la table ou aux dépendants.
Syntaxe
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
Paramètres
path
Chemin d'accès au système de fichiers. Il peut s’agir d’chemin d’accès absolu ou relatif.
-
Identifie la table à insérer. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options. Si la table est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND.
-
Paramètre facultatif qui spécifie une partition cible pour l’insertion. Vous pouvez également spécifier la partition partiellement.
LOCAL
S’il est spécifié, le
INPATH
est résolu par rapport au système de fichiers local, au lieu du système de fichiers par défaut, qui est généralement un stockage distribué.OVERWRITE
Par défaut, les nouvelles données sont ajoutées à la table. Si
OVERWRITE
est utilisé, la table est remplacée par de nouvelles données.
Exemples
-- 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