У меня есть таблица с двумя столбцами - один называется json
, строка содержит массив JSON , а другая Int
называется id
. Если я выберу только столбец json
и преобразую полученный DataFrame
в Dataset
, а затем проанализирую json, используя Reader.json()
, массив JSON в полученном DataFrame
будет разбит на несколько строк. Теперь я не вижу способа соотнести id
с правильными разнесенными строками. В Java это выглядит примерно так:
Dataset<Row> df = reader.table("myTable"); // DataFrame containing json and id
df = df.selectExpr("json"); // DataFrame containing just json
Dataset<String> ds = df.toJavaRDD() // Dataset<String> containing just json
.map((Function<Row, String>) row -> (String) row.get(0)).rdd(), STRING());
df = reader.schema(jsonDdl).json(ds); // exploded DataFrame, one row per array element
... что теперь? У меня нет способа сопоставить id
обратно с строками, полученными от операции разбора JSON. Как я могу сделать это по-другому, чтобы сохранить связь между id
и проанализированными столбцами JSON?