CREATE DATASOURCE TABLE

説明

CREATE TABLE 文は、データソースを使って新しいテーブルを定義します。

構文

CREATE TABLE [ IF NOT EXISTS ] table_identifier
    [ ( col_name1 col_type1 [ COMMENT col_comment1 ], ... ) ]
    USING data_source
    [ OPTIONS ( key1=val1, key2=val2, ... ) ]
    [ PARTITIONED BY ( col_name1, col_name2, ... ) ]
    [ CLUSTERED BY ( col_name3, col_name4, ... ) 
        [ SORTED BY ( col_name [ ASC | DESC ], ... ) ] 
        INTO num_buckets BUCKETS ]
    [ LOCATION path ]
    [ COMMENT table_comment ]
    [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
    [ AS select_statement ]

USING 句と AS SELECT 句の間の句は、任意の順番で入力できることに注してください。例えば、TBLPROPERTIE の後に SCOMMENT table_comment を書くことができます。

パラメータ

データソースの相互作用

データソーステーブルは、基になるデータソースへのポインタのように機能します。例えば、JDBC データソースを使って、MySQL のテーブル “bar” を指すテーブル “foo” を Spark で作成することができます。テーブル “foo” を読み書きする時に、実際にはテーブル “bar” を読み書きします。

一般に、CREATE TABLE は “pointer” を作成し、それが既存のものを指すようにする必要があります。例外は、parquet、json のようなファイルソースです。LOCATION を指定しない場合、Spark はデフォルトのテーブルの場所を作成します。

CREATE TABLE AS SELECT の場合、Spark は基になるデータソースを入力クエリのデータで上書きし、入力クエリとまったく同じデータを含むようにテーブルが作成されます。


--Use data source
CREATE TABLE student (id INT, name STRING, age INT) USING CSV;

--Use data from another table
CREATE TABLE student_copy USING CSV
    AS SELECT * FROM student;
  
--Omit the USING clause, which uses the default data source (parquet by default)
CREATE TABLE student (id INT, name STRING, age INT);

--Specify table comment and properties
CREATE TABLE student (id INT, name STRING, age INT) USING CSV
    COMMENT 'this is a comment'
    TBLPROPERTIES ('foo'='bar');

--Specify table comment and properties with different clauses order
CREATE TABLE student (id INT, name STRING, age INT) USING CSV
    TBLPROPERTIES ('foo'='bar')
    COMMENT 'this is a comment';

--Create partitioned and bucketed table
CREATE TABLE student (id INT, name STRING, age INT)
    USING CSV
    PARTITIONED BY (age)
    CLUSTERED BY (Id) INTO 4 buckets;
TOP
inserted by FC2 system