Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks Runtime
Hive-formátummal definiál egy táblát.
Szintaxis
CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
[ ( col_name1[:] col_type1 [ COMMENT col_comment1 ], ... ) ]
[ COMMENT table_comment ]
[ PARTITIONED BY ( col_name2[:] col_type2 [ COMMENT col_comment2 ], ... )
| ( col_name1, col_name2, ... ) ]
[ ROW FORMAT row_format ]
[ STORED AS file_format ]
[ LOCATION path ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ AS select_statement ]
row_format:
: SERDE serde_class [ WITH SERDEPROPERTIES (k1=v1, k2=v2, ... ) ]
| DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
[ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
[ MAP KEYS TERMINATED BY map_key_terminated_char ]
[ LINES TERMINATED BY row_terminated_char ]
[ NULL DEFINED AS null_char ]
Az oszlopdefiníciós záradék és a AS SELECT záradék közötti záradékok bármilyen sorrendben megjelenhetnek. Írhat például COMMENT table_comment utána TBLPROPERTIES.
Megjegyzés
Meg kell adnia vagy a STORED AS vagy a ROW FORMAT záradékot. Ellenkező esetben az SQL-elemző a CREATE TABLE [USING] szintaxist használja az elemzéshez, és alapértelmezés szerint létrehoz egy Delta-táblát.
Paraméterek
table_identifier
Táblanév, opcionálisan sémanévvel minősítve.
Szintaxis:
[schema_name.] table_nameKÜLSŐ
Meghatározza a táblát a megadott
LOCATIONútvonal használatával.PARTICIONÁLT
A tábla particionálása a megadott oszlopok szerint.
SORFORMÁTUM
A
SERDEzáradék használatával egyéni SerDe-et adhat meg egy táblához. Ellenkező esetben használja aDELIMITEDzáradékot a natív SerDe használatára, és adja meg a határoló karaktert, a escape karaktert, a null karaktert stb.SERDE
Egyéni SerDe-et ad meg egy táblához.
serde_class
Egy egyéni SerDe teljes osztálynevét határozza meg.
SERDEPROPERTIES
A SerDe-definíció címkézéséhez használt kulcs-érték párok listája.
TAGOLT
A
DELIMITEDzáradék segítségével megadhatja a natív SerDe karaktert, és megadhatja a határolójelet, a escape karaktert, a null karaktert stb.MEZŐK ELVÁLASZTVA
Oszlopelválasztó meghatározására használatos.
A GYŰJTEMÉNYELEMEK ELVÁLASZTVA
Gyűjteményelem-elválasztó definiálására szolgál.
LEKÉPEZÉSI KULCSOK HATÁROLVA
Térképkulcs-elválasztókat definiálja.
A SOROKAT MEGSZAKÍTOTTA:
Sorelválasztó definiálására szolgál.
NULL ÉRTÉK DEFINIÁLVA
A NULL adott értékének meghatározására szolgál.
MEGMENEKÜLT
Határozza meg a feloldó mechanizmust.
A GYŰJTEMÉNYELEMEK ELVÁLASZTVA
Gyűjteményelem-elválasztó definiálása.
LEKÉPEZÉSI KULCSOK HATÁROLVA
Térképkulcs elválasztójának definiálása.
A SOROKAT MEGSZAKÍTOTTA:
Sorelválasztó definiálása.
NULL ÉRTÉK DEFINIÁLVA
Határozza meg a konkrét értéket a következőhöz:
NULL.TÁROLÁS MÁSKÉNT
A tábla fájlformátuma. Az elérhető formátumok a következők:
TEXTFILE,SEQUENCEFILE,RCFILE,ORC,PARQUETésAVRO. Másik lehetőségként megadhatja a saját bemeneti és kimeneti formátumaitINPUTFORMATOUTPUTFORMATis. Csak aTEXTFILE,SEQUENCEFILEésRCFILEformátumok használhatók aROW FORMAT SERDE-mal, és csak aTEXTFILEhasználható aROW FORMAT DELIMITED-tel.HELYSZÍN
A táblaadatok tárolására szolgáló könyvtár elérési útja, amely az elosztott tároló elérési útja lehet.
MEGJEGYZÉS
Egy karakterlánc a táblázat leírására.
TBLPROPERTIES
A tábladefiníció címkézéséhez használt kulcs-érték párok listája.
AS select_statement
Kitölti a táblát a kiválasztási utasítás adataival.
Példák
--Use hive format
CREATE TABLE student (id INT, name STRING, age INT) STORED AS ORC;
--Use data from another table
CREATE TABLE student_copy STORED AS ORC
AS SELECT * FROM student;
--Specify table comment and properties
CREATE TABLE student (id INT, name STRING, age INT)
COMMENT 'this is a comment'
STORED AS ORC
TBLPROPERTIES ('foo'='bar');
--Specify table comment and properties with different clauses order
CREATE TABLE student (id INT, name STRING, age INT)
STORED AS ORC
TBLPROPERTIES ('foo'='bar')
COMMENT 'this is a comment';
--Create partitioned table
CREATE TABLE student (id INT, name STRING)
PARTITIONED BY (age INT)
STORED AS ORC;
--Create partitioned table with different clauses order
CREATE TABLE student (id INT, name STRING)
STORED AS ORC
PARTITIONED BY (age INT);
--Use Row Format and file format
CREATE TABLE student (id INT, name STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
--Use complex datatype
CREATE EXTERNAL TABLE family(
name STRING,
friends ARRAY<STRING>,
children MAP<STRING, INT>,
address STRUCT<street: STRING, city: STRING>
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\'
COLLECTION ITEMS TERMINATED BY '_'
MAP KEYS TERMINATED BY ':'
LINES TERMINATED BY '\n'
NULL DEFINED AS 'foonull'
STORED AS TEXTFILE
LOCATION '/tmp/family/';
--Use predefined custom SerDe
CREATE TABLE avroExample
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TBLPROPERTIES ('avro.schema.literal'='{ "namespace": "org.apache.hive",
"name": "first_schema",
"type": "record",
"fields": [
{ "name":"string1", "type":"string" },
{ "name":"string2", "type":"string" }
] }');
--Use personalized custom SerDe(we may need to `ADD JAR xxx.jar` first to ensure we can find the serde_class,
--or you may run into `CLASSNOTFOUND` exception)
ADD JAR /tmp/hive_serde_example.jar;
CREATE EXTERNAL TABLE family (id INT, name STRING)
ROW FORMAT SERDE 'com.ly.spark.serde.SerDeExample'
STORED AS INPUTFORMAT 'com.ly.spark.example.serde.io.SerDeExampleInputFormat'
OUTPUTFORMAT 'com.ly.spark.example.serde.io.SerDeExampleOutputFormat'
LOCATION '/tmp/family/';