複雑なJSONの処理

Java でのデータインポート

Anthony Markham

VP Quant Developer

複雑なJSONデータ

  • ネストされたオブジェクトと配列
  • 混在するデータ型
  • APIと設定ファイルの処理 🧠

$$

複雑なJSONデータ

Java でのデータインポート

ネストされたJSONオブジェクト

  • ネスト - オブジェクト内のオブジェクト
  • Tablesawは単純なケースを自動的にフラット化できます
  • フラット化 - 各行にリストや配列を含む列を複数の行に展開すること
{
  "customer": {
    "name": "John Doe",
    "address": {
      "street": "123 Main St",                            <- Nested information
      "city": "Boston",                                   <- Nested information
      "coordinates": {"lat": 42.3601, "lng": -71.0589}    <- Nested within nested information
    }
  }
}
Java でのデータインポート

JSONのフラット化

customer.name customer.address.street customer.address.city
John Doe 123 Main St Boston

$ $

customer.address.coordinates.lat customer.address.coordinates.lng
42.3601 -71.0589
Java でのデータインポート

JsonReaderの設定

  • JsonReadOptionsの設定項目:
    • ソースの指定(ファイル、URL、または文字列)
    • テーブル名の設定
    • 欠損値の処理
JsonReadOptions options = JsonReadOptions

.builder("complex.json")
.tableName("Products")
.missingValueIndicator("N/A")
.build();
Table data = new JsonReader().read(options);
missingValues = data.stringColumn("name").isMissing();
Java でのデータインポート

テーブルの結合

  • joinOnを使用してテーブルを結合します
  • 内部結合は両テーブルに存在する行のみを保持します
Table phones = Table.read().csv("phones.csv");   // name, phone

Table diets = Table.read().csv("diets.csv"); // name, diet
// Perform the inner join on the two tables Table joined = phones.joinOn("name").inner(diets);

$$

$$

  • 他にも多くの結合タイプがあります
Java でのデータインポート

練習しましょう!

Java でのデータインポート

Preparing Video For Download...