2016-08-13 16 views
2

私はsyncsort、informaticaなどのような多くのツールを見ていて、EBCDICメインフレームファイルをASCIIに変換するのに十分な効率があります。 当社は規模が小さく、ツールに投資したくないので、私はEBCDICメインフレームファイルをASCIIに変換するための挑戦をしています。 上流はメインフレームで、データ全体をhdfsに移行していますが、hdfsはメインフレームを処理するのに十分ではないため、 Spark/java rodeルーチンでこれらのメインフレームEBCDICファイルに変換してください。 ファイルをエクスポートすると、ファイルはASCIIに変換されますが、パック10進数であるため、COMP/COMP3は変換されません。 私は、これらのメインフレームのEBCDICを部分的に変換したファイルをASCIIに変換するロジックを書く必要があります。これにより、我々はさらにhadoopでの処理を行うことができます。 このサイトではiamが新しいので、サンプルのebcdicファイルを追加することもできません。あなたに以下のようにアスキーと迷惑メールを含むサンプルファイルの内容を検討するよう依頼してください 以下は、給与項目の後にある迷惑メール、Deptフィールド、COMPデータタイプを持っています..下はemp.txtファイルですEBCDICからCOMPを含むASCII形式

101ganesh10000a?
102RAMESH 20000は€
103NAGESH 40000€

以下JRecordはASCIIにEBCDICのバイナリファイルを変換するために呼び出され、あなたが火花で使用できるJavaでライブラリがありempcopybook

01 EMPLOYEE-DETAILS. 
    05 EMP-ID  PIC 9(03). 
    05 EMP-NAME  PIC X(10). 
    05 EMP-SAL  PIC 9(05). 
    05 DEPT   PIC 9(3) COMP-3. 

答えて

1

です。

あなたはこれが火花でそれを実行する機能newAPIHadoopFileとスカラ座と統合することが可能であるこの男とhere

を見つけることができますコード。このコードはHadoopコーディングですが、sparkでうまく動作します。

1

も、このオプションがあります(それはまた、JRecord使用しています):

それはチアゴが言及したことCopybookInputFormatのクローンになりそうだCopybookHadoopに基づいています。


ドキュメントから任意の方法:

この例では、ローカルのバイナリファイル「ファイル:///home/cdap/DTAR020_FB.bin」からデータを読み取り、テキストで指定されたスキーマを使用してそれを解析し領域 "COBOL Copybook" フィールド "DTAR020-DATE"を削除し、テキストエリアで指定されたスキーマを持つ構造化レコードを生成します。

{ 
    "name": "CopybookReader", 
    "plugin": {                            
     "name": "CopybookReader", 
     "type": "batchsource", 
     "properties": { 
      "drop" : "DTAR020-DATE", 
      "referenceName": "Copybook", 
      "copybookContents": 
        "000100* \n                                  
        000200* DTAR020 IS THE OUTPUT FROM DTAB020 FROM THE IML \n 
        000300* CENTRAL REPORTING SYSTEM \n 
        000400* \n 
        000500* CREATED BY BRUCE ARTHUR 19/12/90 \n 
        000600* \n 
        000700* RECORD LENGTH IS 27. \n 
        000800* \n      
        000900 03 DTAR020-KCODE-STORE-KEY. \n         
        001000 05 DTAR020-KEYCODE-NO PIC X(08). \n                 
        001100 05 DTAR020-STORE-NO PIC S9(03) COMP-3. \n 
        001200 03 DTAR020-DATE PIC S9(07) COMP-3. \n 
        001300 03 DTAR020-DEPT-NO PIC S9(03) COMP-3. \n           
        001400 03 DTAR020-QTY-SOLD PIC S9(9) COMP-3. \n 
        001500 03 DTAR020-SALE-PRICE PIC S9(9)V99 COMP-3. ", 
       "binaryFilePath": "file:///home/cdap/DTAR020_FB.bin", 
       "maxSplitSize": "5" 
     } 
    } 
} 
関連する問題