注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Excel ファイルから行を抽出

サポート対象:バッチ

Microsoft Excel ファイルのデータセットを読み込み、各ファイルをパースして行に変換します。サポートされるファイル形式: .xls, .xlt, .xltm, .xltx, .xlsx, .xlsm。

個々の Excel ファイルの処理は複数の Spark エグゼキューターに分散されないため、入力データセットに含まれるファイルがちょうど1個と想定される場合は、ビルド設定でローカル Spark の使用を有効にすることを推奨します。

特に大きな Excel ファイルの処理には大量のメモリーが必要になることがあるため、メモリー不足エラーによってビルドに失敗する場合は、エグゼキューターのメモリーを増やしたカスタムビルド設定(ローカル Spark の場合はドライバーのメモリーを増やした設定)の使用を検討してください。このような大きなファイルでは出力をプレビューできない場合がありますが、適切なビルド設定を使用すればデプロイには成功する可能性があります。

データ加工のカテゴリー:ファイル操作

引数

  • データセット: 処理するファイルのデータセット。
    Files

  • スキップする行数: 各シートの先頭でスキップする行数。「最初の行(スキップ後)をヘッダーとして扱う」オプションを使用せず、ヘッダーが存在する場合は、この値にヘッダー行を含める必要があります。
    Literal<Integer>

  • スキーマ: 指定したパターンに一致するシート内のデータに対応する、順序付きの列名リスト。
    List<Literal<String>>

  • ソースシートのパターン: 名前にこの正規表現に一致する部分文字列が含まれるすべてのシートからデータが抽出されます。空の文字列(このパラメーターのデフォルト値)を指定すると、すべてのシートからデータが抽出されます。部分文字列ではなく文字列全体を一致させるには、文字列の先頭に ^、末尾に $ を追加します。
    Literal<String>

  • 任意 ファイルパスを格納する出力列: 指定すると、この列名で出力列が作成され、パースされたファイルのパスが格納されます。
    Literal<String>

  • 任意 行番号を格納する出力列: 指定すると、この列名で出力列が作成され、パースされた行の1始まりの行番号が格納されます。
    Literal<String>

  • 任意 シート名を格納する出力列: 指定すると、この列名で出力列が作成され、パースされた行のシート名が格納されます。
    Literal<String>

  • 任意 最初の行(スキップ後)をヘッダーとして扱う: true の場合、各シートのスキップ後の最初の行がヘッダーとして扱われ、そのヘッダー内のフィールドの順序に基づいて、シート内の列とスキーマ内の列のマッピングが決まります。フィールドの順序はシート間(およびファイル間)で異なっていても構いません。また、スキーマで指定されたすべてのフィールドがすべてのシートに存在する必要も、Excel シート内のすべてのフィールドがスキーマに含まれている必要もありません。ヘッダー行のセル値に含まれる文字列は、次のサニタイズおよび曖昧さ解消の手順を適用した後、大文字と小文字を区別せずにスキーマの列名にマッピングされます。

    1. 文字列の先頭に、 (),;{} \t= の文字の任意の組み合わせからなる連続した文字がある場合は、それらを削除します(このリストの最初の文字は ASCII のスペースです)。
    2. 残っている (),;{} \t= のすべての出現箇所をアンダースコアに置き換えます。
    3. 連続するすべてのアンダースコアを1個のアンダースコアに置き換えます。
    4. この時点で文字列の末尾がアンダースコアの場合は、そのアンダースコアを削除します。
    5. この時点で文字列の長さが0の場合は、文字列を _untitled_column に置き換えます。
    6. 各文字列に手順1から5を適用した後、同じ文字列値(大文字と小文字を区別しない)が複数回出現する場合は、2回目以降の文字列の末尾にアンダースコアと数字の接尾辞を追加します(この方法で最初に追加される接尾辞は _2 です)。

    Literal<Boolean>