注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry は CSV データセットをサポートしています。これらは CSV 形式のファイルを含むデータセットです。
CSV 形式では、異なる区切り文字、引用符、エスケープ文字を使用することができます。これを管理するために、CSV ファイルがどのように解析されるかを制御するパラメーターを定義できます。これらのパラメーターはデータセットのスキーマに保存されます。Foundry は推論を使用して、特定のデータセットに対する適切なパラメーターのセットを提案しますが、結果は検証され、必要に応じて変更を加えるべきです。
Foundry の CSV データセットは、一般的にスキーマ内で dataFrameReaderClass
として TextDataFrameReader
が定義されています。これにより、カスタム パラメーターのセットがサポートされ、複雑なデータを効果的に処理するのに役立ちます。実行時には、最高のパフォーマンスと信頼性を確保するために、Spark CSV DataFrameReader ↗ に委任されます。
Foundry では、Dataset Preview アプリケーションで、詳細タブに移動し、スキーマを選択することで、任意のデータセットのスキーマを表示できます。スキーマの詳細については、データセット ドキュメントを参照してください。
CSV スキーマは、プレビュー タブを表示しているときに Dataset Preview から利用できる スキーマの編集 UI で操作できます。これにより、利用可能なオプションとそれらが出力データセットにどのように影響するかを視覚化するのに役立ちます。CSV が特に不正形の場合、望ましい出力を得るためにスキーマを手動で編集する必要があるかもしれません。
スキーマ内で TextDataFrameReader
オプションを手動で構成するには、Dataset Preview の 詳細タブでスキーマ ページに移動し、編集を選択します。スキーマの下部には、次のようなセクションがあるはずです。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
"dataFrameReaderClass": "com.palantir.foundry.spark.input.TextDataFrameReader", "customMetadata": { "textParserParams": { "parser": "CSV_PARSER", // CSV形式でデータをパースする "charsetName": "UTF-8", // 文字エンコーディングはUTF-8 "fieldDelimiter": ",", // フィールドの区切り文字はカンマ "recordDelimiter": "\n", // レコードの区切り文字は改行 "quoteCharacter": "\"", // 引用符として使用される文字 "dateFormat": {}, // 日付フォーマット(ここでは指定されていない) "skipLines": 1, // 最初の1行をスキップする(通常ヘッダ行をスキップ) "jaggedRowBehavior": "THROW_EXCEPTION", // 不揃いな行がある場合、例外をスロー "parseErrorBehavior": "THROW_EXCEPTION", // パースエラーが発生した場合、例外をスロー "addFilePath": false, // ファイルパスを追加しない "addFilePathInsteadOfUri": false, // URIの代わりにファイルパスを追加しない "addImportedAt": false, // インポート日時を追加しない "initialReadTimeout": "1 hour" // 初回読み込みタイムアウトは1時間 } } }
TextDataFrameReader
には以下のオプションがあります。
プロパティ | 目的 | 受け入れ可能な値 | 必須かどうか | サポートされているパーサ |
---|---|---|---|---|
parser | 使用するパーサのタイプ。 | CSV_PARSER, MULTILINE_CSV_PARSER, SIMPLE_PARSER, SINGLE_COLUMN_PARSER | はい | N/A |
nullValues | null にパースされるべき値。 | 文字列のリスト | はい | すべて |
fieldDelimiter | レコードを複数のフィールドに分割するためのデリミタ文字。 | 1 文字の文字列 | いいえ、デフォルトは , (コンマ) | CSV_PARSER, MULTILINE_CSV_PARSER, SIMPLE_PARSER |
recordDelimiter | CSV ファイルを複数のレコードに分割するための行末記号。 | 改行文字で終わる文字列 | いいえ、デフォルトは \n (改行) | CSV_PARSER, MULTILINE_CSV_PARSER |
quoteCharacter | CSV 解析のための引用符文字。 | 1 文字の文字列 | いいえ、デフォルトは " (ダブルクォート) | CSV_PARSER, MULTILINE_CSV_PARSER |
dateFormat | 特定の列での日付解析のためのフォーマット文字列。 | 列名を JodaTime DateTimeFormat パターンにマッピングするマップ | いいえ、デフォルトは空のマップ | CSV_PARSER, MULTILINE_CSV_PARSER, SIMPLE_PARSER |
skipLines | 各ファイルの先頭で解析をスキップする行数。 | 0 以上の数 | いいえ、デフォルトは 0 | すべて |
jaggedRowBehavior | ヘッダーに指定された型よりも列が多いまたは少ない場合の動作。 | THROW_EXCEPTION, DROP_ROW | いいえ、デフォルトは THROW_EXCEPTION | N/A |
parseErrorBehavior | ヘッダーで指定された型に値を解析できない場合の動作。 | THROW_EXCEPTION, REPLACE_WITH_NULL | いいえ、デフォルトは THROW_EXCEPTION | N/A |
addFilePath | 各行にファイルパスを追加。 | Boolean | いいえ、デフォルトは false | すべて |
addImportedAt | 各行にインポート時間を追加。 | Boolean | いいえ、デフォルトは false | すべて |
initialReadTimeout | パーサが最初の行を読み込むために待機する時間の制限。 | 人間が読める期間 | いいえ、デフォルトは 1 時間 | すべて |
Spark CSV DataFrameReader にすでに精通している場合は、dataFrameReaderClass
を DataSourceDataFrameReader
に設定し、customMetadata
で format
を csv
に設定できます。
サポートされているオプションのリストについては、Spark CSV DataFrameReader のドキュメント ↗ を参照してください。以下のようにキーと値のペアとして設定を追加できます。
Copied!1 2 3 4 5 6 7 8 9
"dataFrameReaderClass": "com.palantir.foundry.spark.input.DataSourceDataFrameReader", "customMetadata": { "format": "csv", // データのフォーマットはCSV "options": { "unescapedQuoteHandling": "STOP_AT_DELIMITER", // エスケープされていない引用符の処理方法: デリミタで停止 "multiline": true, // 複数行に渡るデータを許可する ... } }
CSVファイルから構築されたデータセットにのみ、上記のスキーマオプションが適用されることに注意してください。