プロダクト概要
製品の強み
適用シーン
CREATE TABLE [ IF NOT EXISTS ] table_identifier( col_name[:] col_type [ COMMENT col_comment ], ... )USING data_source[ COMMENT table_comment ][ OPTIONS ( 'key1'='value1', 'key2'='value2' )][ PARTITIONED BY ( col_name1, transform(col_name2), ... ) ][ LOCATION path ][ TBLPROPERTIES ( property_name=property_value, ... ) ]
USING data_source:テーブル作成時におけるデータの入力タイプ。現在サポートされている形式:CSV、ORC、PARQUET、ICEBERGなど。
table_identifier:テーブル名を指定。三段式(例:catalog.database.table)をサポート。
COMMENT:テーブルの説明情報。OPTIONS:USING data_sourceでサポートされる追加パラメータ。保存時のパラメータ注入に使用。
PARTITIONED BY:指定された列に基づいてパーティションを作成。
LOCATION path:データテーブルの保存パス。
TBLPROPERTIES:テーブルのパラメータを指定するための一連のk-v値。OPTIONS でサポートされているキー | key に対応する value のデフォルト値 | 意味 |
sepまたはdelimiter | , | csv保存時の列間の区切り文字、デフォルトは英語のカンマ |
mode | PERMISSIVE | データ変換時に期待通りに処理されない場合の処理モードを定義します。 PERMISSIVE:より寛容なモード、デフォルトで、ある行のデータを変換しようと試みます。例えば、ある行に余分な列がある場合、必要な列のみを自動的に取得します。 DROPMALFORMED:期待通りに処理されないデータを破棄します。例えば、ある行に余分な列がある場合、その行は破棄されます。 FAILFAST:csvフォーマットを厳密に要求し、ある行が期待通りでない場合(例えば余分な列がある場合)すぐに失敗します。 |
encodingまたはcharset | UTF-8 | 文字列エンコーディングフォーマット。 例えば:UTF-8、US-ASCII、ISO-8859-1、UTF-16BE、UTF-16LE、UTF-16 |
quote | \\" | 引用符はシングルクォートかダブルクォートか、エスケープ文字の使用に注意してください |
escape | \\\\ | エスケープ文字、エスケープ文字の使用に注意してください |
charToEscapeQuoteEscaping | - | 引用符内部でエスケープが必要な文字 |
comment | \\u0000 | 備考情報 |
header | false | ヘッダーが存在します |
inferSchema | false | 列のタイプを推測し、推測しない場合は各列が文字列になります |
ignoreLeadingWhiteSpace | 読み取り:false 書き込み:true | 無視する先頭の空文字列 |
ignoreTrailingWhiteSpace | 読み取り:false 書き込み:true | 無視する末尾の空文字列 |
columnNameOfCorruptRecord | _corrupt_record | 変換できない列の列名。このパラメータはspark.sql.columnNameOfCorruptRecordの影響を受け、テーブルの設定が優先されます |
nullValue | - | nullのストレージ形式。デフォルトは空文字列で、この場合emptyValueの方法で書き込まれます |
nanValue | NaN | 非数値型の値のストレージ形式 |
positiveInf | Inf | 正の無限大のストレージ形式 |
negativeInf | -Inf | 負の無限大のストレージ形式 |
compressionまたはcodec | - | 圧縮アルゴリズムのクラス名。デフォルトでは圧縮なし。略称を使用可能:bzip2、deflate、gzip、lz4、snappy |
timeZone | システムデフォルトのタイムゾーン | デフォルトのタイムゾーン。このパラメータの値はspark.sql.session.timeZoneの影響を受けます(例:Asia/Shanghai)。テーブルの設定が優先されます。 |
locale | en-US | 言語タイプ |
dateFormat | yyyy-MM-dd | デフォルトの日付形式 |
timestampFormat | yyyy-MM-dd'T'HH:mm:ss.SSSXXX | デフォルトの時間形式。LEGACYモード以外ではyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]となります |
multiLine | false | 複数行を許可 |
maxColumns | 20480 | 最大列数 |
maxCharsPerColumn | -1 | 各列の最大文字数、-1は制限なしを意味します |
escapeQuotes | true | エスケープ引用符 |
quoteAll | quoteAll | 「書き込み時に全文に引用符を追加」 |
samplingRatio | 1.0 | サンプリング比率 |
enforceSchema | true | 指定されたスキーマを使用して強制的に読み取り、ヘッダーの定義は無視されます |
emptyValue | 読み取り 書き込み:\\"\\" | 空値の読み書き形式 |
lineSep | - | 改行文字 |
inputBufferSize | - | 読み取り時のバッファサイズ。このパラメータはspark.sql.csv.parser.inputBufferSizeの影響を受けますが、テーブル設定が優先されます |
unescapedQuoteHandling | STOP_AT_DELIMITER | 非エスケープ引用符が検出されたときの処理戦略。 STOP_AT_DELIMITER:区切り文字で読み取りを停止 BACK_TO_DELIMITER:区切り文字に戻る STOP_AT_CLOSING_QUOTE:次の引用符で読み取りを停止 SKIP_VALUE:この列のデータをスキップ RAISE_ERROR:エラーを報告 |
OPTIONSでサポートされているキー | key に対応する value のデフォルト値 | 意味 |
圧縮またはorc.compress | snappy | 圧縮アルゴリズムは、snappy/zlib/lzo/lz3/zstdの略称をサポートし、このパラメータはspark.sql.orc.compression.codecの影響を受けますが、テーブルパラメータが優先されます。 |
mergeSchema | false | スキーマをマージします。このパラメータはspark.sql.orc.mergeSchemaの影響を受け、テーブルパラメータが優先されます |
OPTIONSでサポートされているキー | key に対応する value のデフォルト値 | 意味 |
圧縮またはparquet.compression | snappy | 圧縮アルゴリズムは、デフォルトでsnappyを使用し、パラメータspark.sql.parquet.compression.codecの影響を受けますが、テーブルパラメータが優先されます。 |
mergeSchema | false | スキーマをマージするかどうかは、パラメータspark.sql.parquet.mergeSchemaの影響を受け、テーブルパラメータが優先されます。 |
datetimeRebaseMode | EXCEPTION | parquetファイルを書き込む際の日付変換戦略。LEGACYモードでは日付をグレゴリオ暦に変換し、CORRECTEDでは日付をグレゴリオ暦に変換せず、EXCEPTIONでは日付が異なる形式の場合にエラーが発生します。パラメータspark.sql.parquet.datetimeRebaseModeInReadの影響を受けますが、テーブルパラメータが優先されます。 |
int96RebaseMode | EXCEPTION | parquetファイルを読み込む際の時間変換戦略。LEGACYモードでは時間をグレゴリオ暦に変換し、CORRECTEDでは時間を変換せず、EXCEPTIONでは異なる形式の時間の場合にエラーが発生します。パラメータspark.sql.parquet.int96RebaseModeInReadの影響を受けますが、テーブルパラメータが優先されます。 |
CREATE TABLE dempts(id bigint COMMENT 'id number',num int,eno float,dno double,cno decimal(9,3),flag boolean,data string,ts_year timestamp,date_month date,bno binary,point struct<x: double, y: double>,points array<struct<x: double, y: double>>,pointmaps map<struct<x: int>, struct<a: int>>)USING icebergCOMMENT 'table documentation'PARTITIONED BY (bucket(16,id), years(ts_year), months(date_month), identity(bno), bucket(3,num), truncate(10,data))LOCATION '/warehouse/db_001/dempts'TBLPROPERTIES ('write.format.default'='orc');
CREATE TABLE [ IF NOT EXISTS ] table_identifier( col_name[:] col_type [ COMMENT col_comment ], ... )[ COMMENT table_comment ][ PARTITIONED BY ( col_name1, transform(col_name2), ... ) ]
table_identifier:3段式をサポート、catalog.db.name
スキーマとデータ型col_type: primitive_type| nested_typeprimitive_type: boolean| int/integer| long/bigint| float| double| decimal(p,s),p=最大桁数,s=最大小数点桁数, s<=p<=38| date| timestamp,timestamp with timezone,timeとwithout timezoneはサポートされていません| string,Icebergのuuidタイプにも対応可能| binary、Iceberg fixed型にも対応可能nested_type: struct| list| map
transform: identity、任意の型をサポート、DLCはこの変換をサポートしていません| bucket[N]、hash mod Nバケット分割、col_type: int、long、decimal、date、timestamp、string、binaryをサポート| truncate[L]、Lで切り捨てバケット分割、col_type: int、long、decimal、stringをサポート| years、年、col_type: date、timestampをサポート| months、月、col_type: date、timestampをサポート| days/date、日付、col_type: date、timestampをサポート| hours/date_hour、時間、col_type: timestampをサポート
CREATE TABLE dempts(id bigint COMMENT 'id number',num int,eno float,dno double,cno decimal(9,3),flag boolean,data string,ts_year timestamp,date_month date,bno binary,point struct<x: double, y: double>,points array<struct<x: double, y: double>>,pointmaps map<struct<x: int>, struct<a: int>>)COMMENT 'table documentation'PARTITIONED BY (bucket(16,id), years(ts_year), months(date_month), identity(bno), bucket(3,num), truncate(10,data));
フィードバック