INSERT OVERWRITE DIRECTORY s formátem Hive

Platí pro:označeno jako ano Databricks Runtime

Přepíše existující data v adresáři novými hodnotami pomocí Hive SerDe. Aby bylo možné tento příkaz použít, musí být povolená podpora Hive. Vložené řádky zadáte podle výrazů hodnot nebo výsledku dotazu.

Syntaxe

INSERT OVERWRITE [ LOCAL ] DIRECTORY directory_path
    [ ROW FORMAT row_format ] [ STORED AS file_format ]
    { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }

Parametry

  • directory_path

    Cílový adresář. Klíčové LOCAL slovo určuje, že adresář je v místním systému souborů.

  • row_format

    Formát řádku pro toto vložení. Platné možnosti jsou SERDE klauzule a DELIMITED klauzule. SERDE klauzuli lze použít k zadání vlastního SerDe pro toto vložení. Alternativně lze pomocí DELIMITED klauzule určit nativní SerDe a specifikovat oddělovač, řídicí znak, znak null a podobně.

  • formát_souboru

    Formát souboru pro toto vložení. Platné možnosti jsou TEXTFILE, , SEQUENCEFILERCFILE, ORC, PARQUET, a AVRO. Můžete také zadat vlastní vstupní a výstupní formát pomocí INPUTFORMAT a OUTPUTFORMAT. ROW FORMAT SERDE lze použít pouze s TEXTFILE, SEQUENCEFILE nebo RCFILE, zatímco ROW FORMAT DELIMITED lze použít pouze s TEXTFILE.

  • VALUES ( { hodnota | NULL } [ , ... ] ) [ , ( … ) ]

    Hodnoty, které se mají vložit. Můžete vložit explicitně zadanou hodnotu nebo hodnotu NULL. Čárka musí být použita k oddělení každé hodnoty v klauzuli. Pro vložení více řádků lze zadat více než jednu sadu hodnot.

  • query

    Dotaz, který vytvoří řádky, které se mají vložit. Jeden z následujících formátů:

    • Příkaz SELECT A
    • Příkaz TABLE A
    • Příkaz FROM A

Příklady

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    STORED AS orc
    SELECT * FROM test_table;

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    SELECT * FROM test_table;