ページの先頭行へ戻る
NetCOBOL V12.0 ユーザーズガイド(Hadoop連携機能編)
FUJITSU Software

2.12.14 キー情報の指定

Shuffle&sortで使用するキー情報には、データのグループ化に使用される「主キー」と、並び替えに使用される「副キー」があります。主キーおよび副キーは複数指定可能です。キーごとに属性や並び順(昇順・降順)を指定することができます。

キー情報は、Hadoop入力データファイルごとに指定する必要があります。

設定内容

設定名(*)
(NAME要素)

設定値
(VALUE要素)

備考

主キー

sortkey.nn.main

  • キーがCOBOLのデータ型の場合

カンマ区切りで

キー属性,オフセット,長さ,並び順

を指定します。

キー属性

キー属性にる値”を参照

オフセット

キーの先頭オフセットをバイト長で指定します。オフセットは0から始まります。

長さ

キーの長さをバイト長で指定します

並び順

A(昇順)またはD(降順)を指定します省略した場合、昇順と見なします

  • キーがCSV形式データの場合

カンマ区切りで

キー属性,カラム目,並び順

または

キー属性,カラム目:開始オフセット-長さ,並び順

を指定します。

キー属性

CSVまたはCSVN

CSV:キーを文字として評価します

CSVN:キーを数値として評価します

カラム目:開始オフセット-長さ

キーが存在するカラム目と、カラム内にあるキーの先頭オフセットおよび長さをバイト長で指定します

開始オフセットのみを指定した場合(-長さが指定されていない場合)は、カラムの末尾までを長さと見なします

並び順

A(昇順)またはD(降順)を指定します省略した場合、昇順と見なします

Shuffle&sortを使用する場合、指定必須

主キーを指定します。

複数指定する場合は/(スラッシュ)で区切って指定します。

このキーでグループ化されたデータが各Reduceタスクに渡されます。

副キー

sortkey.nn.sub

省略可

副キーを指定します。

複数指定する場合は/(スラッシュ)で区切って指定します。

キーがCSVデータの場合、カラムは0番目から始まります。

キーがCSVデータの場合で、データ自体にセパレータ文字を含めたい場合は、カラムをダブルクォーテーションで囲む必要があります。

ただし、浮動フィド指定にtrueが指定されている場合、フィールドを囲むダブルクォーテーションを考慮しません。

ASCIIコードの

並び順

sortkey.nn.colseq

  • ASCII

    ASCII(JIS8)コードで並べ替えます

  • EBCDIC-ASCII

    EBCDIC ASCIIコードで並べ替えます

  • EBCDIC-KANA

    EBCDIC KANAコードで並べ替えます

  • EBCDIC-LOWER

    EBCDIC 英小文字で並べ替えます

省略可

本指定が有効になるのは、キーの属性が以下の場合です。

  • 英字項目

  • 英数字項目

  • 英数字編集項目

SEPARATE指定なしの外部10進項目の並び順

sortkey.nn.decimal

  • FJ

    富士通形式のデータとして並び換えます

  • MF

    MF互換形式のデータとして並び換えます

  • 88

    88コンソーシアム形式のデータとして並び換えます

省略可

本属性が有効になるのはキー属性がSEPARATE指定なしの外部10進項目の場合です。

内部浮動小数点の並び順

sortkey.nn.float

  • IEEE

    IEEE形式のデータとして並び換えます

  • M

    富士通メインフレーム形式のデータとして並び換えます

省略可

本属性が有効になるのはキー属性が内部浮動小数点項目の場合です。

指定例

  • キーがCOBOLデータの場合

    <name>com.fujitsu.netcobol.hadoop.sortkey.01.main</name>
    <value>S9LS,0,4,D</value>
    <name>com.fujitsu.netcobol.hadoop.sortkey.01.sub</name>
    <value>S9P,5,3/ASC,15,5</value>
    • 主キーに外部10進LEADING SEPARATE、オフセット0バイト目から長さ4バイト、降順

    • 1番目の副キーに符号付き内部10進 、オフセット5バイト目から長さ3バイト、昇順

    • 2番目の副キーに英数字項目 、オフセット15バイト目から長さ5バイト 昇順

  • キーがCSVデータの場合

    <name>com.fujitsu.netcobol.hadoop.sortkey.01.main</name>
    <value>CSV,2,A</value>
    <name>com.fujitsu.netcobol.hadoop.sortkey.01.sub</name>
    <value>CSVN,3,D/CSVN,4:2-5,D </value>
    • 主キーにCSV形式データの3カラム目、文字として評価、昇順

    • 1番目の副キーにCSV形式データの4カラム目、数値として評価、降順

    • 2番目の副キーにCSV形式データの5カラム目にあるオフセット2バイト目から長さ5バイト、数値として評価、降順

*:設定名は「com.fujitsu.netcobol.hadoop.」で修飾します。

表2.2 キー属性に指定する値

COBOLデータ種別

指定値

字類

項類

USAGE句

SIGN句

PICTURE句

呼び名

数字

数字

DISPLAY

なし

9(4)

外部10進

9

S9(4)

S9

LEADING

S9(4)

S9L

TRAILING

S9T

LEADING SEPARATE

S9LS

TRAILING SEPARATE

S9TS

PACKED-DECIMAL

9(4)

内部10進

9P

PACKED-DECIMAL

S9(4)

S9P

COMP-6

9(4)

符号なし内部10進

9PC6

COMP-6

S9(4)

符号付き内部10進

S9PC6

BINARY,COMP

9(4)

規格2進

9B

BINARY,COMP

S9(4)

S9B

COMP-5

9(4)

システム2進項目

9C

COMP-5

S9(4)

S9C

BINARY-CHAR

9(4),S9(4)

int型2進整数項目

BC

BINARY-SHORT

BS

BINARY-LONG

BL

BINARY-DOUBLE

BD

+99.99E+99

外部浮動小数点項目

EXFL

COMP-1

9(4),S9(4)

単精度内部浮動小数点項目

INFL

COMP-2

9(4),S9(4)

倍精度内部浮動小数点項目

数字編集

DISPLAY

B / P V Z 0 9 , . * + - CR DB \

ASCE

英字

英字(*1)

DISPLAY

A

ASC

英数字

英数字(*1)

DISPLAY

A X 9

英数字編集(*1)

DISPLAY

A X 9 B 0 /

日本語

日本語

N

NLE16(*2)
NBE16(*2)

NLE32(*3)
NBE32(*3)

日本語編集

NB

ブール

ブール

DISPLAY

1(8)

外部ブール項目

BOOL

(*1)ASCII(JIS8)コードのデータをEBCDICコード順に並べることができます。対応するEBCDICコードは以下です。

(*2) UTF-16リトルエンディアンの場合「NLE16」を指定します。UTF-16ビッグエンディアンの場合「NBE16」を指定します。

(*3) UTF-32リトルエンディアンの場合「NLE32」を指定します。UTF-32ビッグエンディアンの場合「NBE32」を指定します。

参考

キー属性に「NLE」を指定した場合、「NLE16」が指定されたものと見なします。キー属性に「NBE」を指定した場合、「NBE16」が指定されたものと見なします。この指定は、互換のために用意されています。