データ接続と統合データセットプレビューよくある質問

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

データセットプレビューの FAQ

以下は、データセットプレビューに関するよくある質問です。

一般的な情報については、データセットプレビューの概要を参照してください。


引用符の対応が取れていないため CSV のパースに失敗する

引用符で囲まれたフィールド内に、入れ子の二重引用符と埋め込みの改行文字( )がある CSV をアップロードすると、スキーマ推論に失敗し、スキーマエディターで有効なスキーマを作成できません。

問題に対処するには、次の手順を実行します。

  1. CSV をデータセットにアップロードし、スキーマを編集を選択します。
  2. 列と引用符のプロパティを設定します。
  3. スキーマの検証エラーを無視し、保存して検証オプションの隣にあるドロップダウンメニューから検証せずに保存を選択します。これにより、正しい列定義を持つスキーマが作成されます。
  4. 詳細タブで、スキーマを編集モードで開きます。
  5. dataFrameReaderClass を com.palantir.foundry.spark.input.DataSourceDataFrameReader に変更します。
  6. "customMetadata" オブジェクトに次の内容を追加します。
  "customMetadata": {
    "format": "csv",
    "options": {
      "header": true,
      "multiLine": true
    }
  }

先頭に戻る


元の CSV の一部に列が多く含まれているためデータセットのパースに失敗する

データセットが複数の CSV で構成されていて(たとえば、Data Connection の APPEND トランザクションによって)、その一部の CSV に列が多く含まれている場合、スキーマ推論に失敗します。対処方法の1つは、列数が不揃いな行(特定の列が欠けている行など)を無視することです。これを行うには、スキーマを編集を選択し、データの読み取りオプションセクションを展開して、列数が不揃いな行を無視にチェックを入れます。

ただし、列数が不揃いな行を保持して、データセットに統一されたスキーマを指定したい場合は、このセクションの手順が適用されます。以下の前提条件セクションに記載された条件をデータが満たしている場合、トラブルシューティングの手順により、_ユーザーが定義した_標準スキーマを持つデータセットが作成されます。このデータセットでは、列数が不揃いな行の欠けている列に null が自動的に入力されます。

パースに失敗したときの症状:

「プレビューを読み込めませんでした:入力 CSV データのパース中にエラーが発生しました。すべてのデータが正しい形式であることを確認してください。」などのエラーメッセージが表示される場合があります。

また、スキーマを編集を選択してから保存して検証を選択すると、「データセットの x 行で検証に失敗しました。」というエラーメッセージが表示される場合もあります。

前提条件:

  1. データセットに含めるすべての列名とデータ型など、必要なスキーマを定義できること。

  2. スキーマで厳格な列順序が適用されること。たとえば、データセットに列 {a, b, c} を含めて表示したい場合、元の CSV は次のような列構造にできます。

  • {a}
  • {a, b}

ただし、次のような列構造には_できません_。

  • {b, a}
  1. 元の CSV に (n+1) 番目の列がある場合、n 番目の列より前のすべての列が含まれている必要があります。たとえば、データセットに列 {a, b, c, d} を含めて表示したい場合、元の CSV は次のような列構造にできます。
  • {a}
  • {a, b}
  • {a, b, c}

ただし、次のような列構造には_できません_。

  • {b, c, d}
  • {a, c, d}
  • {a, b, d}

トラブルシューティングの手順が適用可能で、役立つケースの例を以下に示します。

APPEND トランザクションによって、CSV がデータセットに定期的に追加されます。ある日、新しい列が CSV の末尾に追加されます。データセットでは、それまでに追加されたすべての CSV の行にも新しい列を含める必要があります。その際、列数が不揃いな行として扱うのではなく、フィールドの値に null が自動的に入力されるようにします。

このトラブルシューティングの手順は、生の Parquet データセットで利用可能な mergeSchema オプションの機能を再現するものではありません(これらのデータセットは、dataFrameReaderClass に com.palantir.foundry.spark.input.ParquetDataFrameReader を指定してパースされます)。生の CSV データセットで同様の機能を再現するには、ユーザーが作成したトランスフォームが必要です。

問題に対処するには、次の手順を実行します。

  1. 詳細タブでスキーマタブを開き、編集を選択します。
  2. データセットに含めるすべての列が含まれるように、fieldSchemaList を変更します。たとえば、データセットに列 {a, b, c} を含め、すべての列のデータ型を Integer にする場合、fieldSchemaList は次のようになります。
  "fieldSchemaList": [
    {
      "type": "INTEGER",
      "name": "a",
      "nullable": null,
      "userDefinedTypeClass": null,
      "customMetadata": {},
      "arraySubtype": null,
      "precision": null,
      "scale": null,
      "mapKeyType": null,
      "mapValueType": null,
      "subSchemas": null
    },
    {
      "type": "INTEGER",
      "name": "b",
      "nullable": null,
      "userDefinedTypeClass": null,
      "customMetadata": {},
      "arraySubtype": null,
      "precision": null,
      "scale": null,
      "mapKeyType": null,
      "mapValueType": null,
      "subSchemas": null
    },
    {
      "type": "INTEGER",
      "name": "c",
      "nullable": null,
      "userDefinedTypeClass": null,
      "customMetadata": {},
      "arraySubtype": null,
      "precision": null,
      "scale": null,
      "mapKeyType": null,
      "mapValueType": null,
      "subSchemas": null
    }
  ],
  1. スキーマ JSON の末尾が次のようになるように、"dataFrameReaderClass" とその入れ子の customMetadata オブジェクトを変更します。
"dataFrameReaderClass": "com.palantir.foundry.spark.input.DataSourceDataFrameReader",
  "customMetadata": {
    "format": "csv",
    "options": {
      "multiLine": true,
      "header": true,
      "mode": "PERMISSIVE"
    }
  }
}
  1. 保存を選択します。

先頭に戻る


ダウンロードしたデータセットを Microsoft Excel で開くと表示がおかしくなるのはなぜですか?

プラットフォームからデータセットをエクスポートすると、一部のファイルを開いたときにデータが詰まって表示される場合があります。この問題は特定のリージョンで確認されており、Excel で使用されるデフォルトの区切り文字が原因です。この問題を解決するには、エクスポート設定の区切り文字のパターンを変更する必要があります。

  1. ファイルを Excel で開きます。
  2. リボンのデータタブを選択します。
  3. データツールグループの区切り位置オプションを選択します。
  4. 区切り位置指定ウィザードウィンドウで、区切り文字によってフィールドごとに区切られたデータオプションを選択し、次へを選択します。
  5. 区切り文字セクションで、使用する区切り文字(コンマ、セミコロン、タブなど)を選択します。
  6. 次へを選択してから完了を選択し、処理を完了します。

先頭に戻る