注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
以下はデータセットプレビューに関するよくある質問です。
一般的な情報については、データセットプレビューの概要を参照してください。
引用符で囲まれたフィールド内にネストされた二重引用符と埋め込まれた改行 (\n
) 文字が含まれるCSVをアップロードすると、スキーマ推論が失敗し、スキーマエディタを使用して有効なスキーマを作成することができません。
トラブルシューティングを行うには、以下の手順を実行してください:
dataFrameReaderClass
を com.palantir.foundry.spark.input.DataSourceDataFrameReader
に変更します。"customMetadata"
オブジェクトに以下を追加します:Copied!1 2 3 4 5 6 7
"customMetadata": { "format": "csv", // データ形式がCSVであることを示します "options": { "header": true, // 最初の行がヘッダー行であることを示します "multiLine": true // 複数行にわたるレコードを処理できることを示します } }
データセットが複数のCSVで構成されている場合(たとえば、Data ConnectionのAPPEND
トランザクションを通じて)、それらのCSVの一部により多くの列が含まれていると、スキーマ推論が失敗します。1つのオプションとして、ギザギザの行(特定の列が欠落している行など)を無視することができます。これを行うには、スキーマを編集を選択し、解析オプションセクションを展開し、ギザギザの行を無視をチェックします。
ただし、ギザギザの行を保持し、データセットに対して標準化されたスキーマを指定したい場合は、このセクションが適用されます。以下の仮定セクションで概説されている条件がユーザーのデータに当てはまる場合、トラブルシューティングの手順によって、ギザギザの行が欠落している列に対してnull
で自動的に埋められる標準スキーマを持つデータセットが生成されます。
解析失敗の症状:
次のようなエラーメッセージが表示される場合があります: "プレビューを読み込めませんでした: 入力CSVデータの解析中にエラーが発生しました。すべてのデータが正しくフォーマットされていることを確認してください。"
また、スキーマを編集を選択してから保存して検証を選択した後に、次のエラーメッセージが表示されることもあります: "データセットがx行での検証に失敗しました。"
仮定:
データセットが持つべきすべての列名とタイプなど、希望するスキーマを定義できる。
スキーマが厳密な列の順序を強制する。たとえば、データセットが列_{a, b, c}_を含み表示する必要がある場合、基盤となるCSVは次のような列構造を持つことができます:
しかし、次のような列構造を持つことはできません:
しかし、次のような列構造を持つことはできません:
以下は、トラブルシューティングの手順が適用され有用であるケースの例です:
CSVがAPPEND
トランザクションを通じて定期的にデータセットに追加されます。ある日、新しい列が追加され、CSVの新しい最後の列になります。データセット内では、これまでに追加されたすべてのCSVの行が新しい列を持ち、フィールドの値はギザギザとして考慮されるのではなくnull
で自動的に埋められる必要があります。
トラブルシューティングの手順は、com.palantir.foundry.spark.input.ParquetDataFrameReader
をdataFrameReaderClass
として使用して解析される生のParquetデータセットで利用可能なmergeSchema
オプションの機能を複製するものではありません。生のCSVデータセットでそのような機能を再現するためには、ユーザーが作成したトランスフォームが必要です。
トラブルシューティングを行うには、以下の手順を実行します:
fieldSchemaList
を修正して、データセットが持つべきすべての列を含めるようにします。たとえば、データセットがすべて整数型の列_{a, b, c}_を持つべき場合、fieldSchemaList
は次のようになります:Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
"fieldSchemaList": [ { "type": "INTEGER", // データ型は整数 "name": "a", // フィールド名は "a" "nullable": null, // このフィールドがnullを許可するかどうかの情報は指定されていない "userDefinedTypeClass": null, // ユーザー定義型クラスは指定されていない "customMetadata": {}, // カスタムメタデータは空 "arraySubtype": null, // 配列のサブタイプは指定されていない "precision": null, // 精度情報は指定されていない "scale": null, // スケール情報は指定されていない "mapKeyType": null, // マップのキータイプは指定されていない "mapValueType": null, // マップの値タイプは指定されていない "subSchemas": null // サブスキーマ情報は指定されていない }, { "type": "INTEGER", // データ型は整数 "name": "b", // フィールド名は "b" "nullable": null, // このフィールドがnullを許可するかどうかの情報は指定されていない "userDefinedTypeClass": null, // ユーザー定義型クラスは指定されていない "customMetadata": {}, // カスタムメタデータは空 "arraySubtype": null, // 配列のサブタイプは指定されていない "precision": null, // 精度情報は指定されていない "scale": null, // スケール情報は指定されていない "mapKeyType": null, // マップのキータイプは指定されていない "mapValueType": null, // マップの値タイプは指定されていない "subSchemas": null // サブスキーマ情報は指定されていない }, { "type": "INTEGER", // データ型は整数 "name": "c", // フィールド名は "c" "nullable": null, // このフィールドがnullを許可するかどうかの情報は指定されていない "userDefinedTypeClass": null, // ユーザー定義型クラスは指定されていない "customMetadata": {}, // カスタムメタデータは空 "arraySubtype": null, // 配列のサブタイプは指定されていない "precision": null, // 精度情報は指定されていない "scale": null, // スケール情報は指定されていない "mapKeyType": null, // マップのキータイプは指定されていない "mapValueType": null, // マップの値タイプは指定されていない "subSchemas": null // サブスキーマ情報は指定されていない } ],
"dataFrameReaderClass"
とそのネストされた customMetadata
オブジェクトを変更し、スキーマ JSON の最後が次のようになるようにしてください。// データフレームリーダークラスの指定
"dataFrameReaderClass": "com.palantir.foundry.spark.input.DataSourceDataFrameReader",
"customMetadata": {
// ファイルフォーマットの指定
"format": "csv",
"options": {
// 複数行のデータを許可
"multiLine": true,
// 最初の行をヘッダーとして扱う
"header": true,
// 読み込み時に柔軟に対応するモード
"mode": "PERMISSIVE"
}
}
}
プラットフォームからデータセットをエクスポートする際、一部のファイルが開いたときに圧縮されて見えることがあります。この問題は特定の地域で観察されており、Excelで使用されるデフォルトの区切り文字が原因です。この問題を修正するには、エクスポート設定で区切り文字のパターンを変更する必要があります。