У меня есть следующий набор данных в Parquet
+----------+----+
| id|type|
+----------+----+
|7116663998| B|
|2099372681| A|
|2029172681| B|
|2096031909| B|
|5096031909| A|
|5096031909| A|
+----------+----+
Набор данных разделен по типу
/.../table
|- type=A
|- type=B
Мне нужно загрузить набор данных как RDD с ключом, используя тип в качестве ключа, чтобы обработать его: например, подсчет по ключу (на самом деле мне нужно сгруппировать его с другим меньшим набором данных).
Выполнение следующего кода (я уже пробовал без этапа partitionBy)
spark.read
.parquet(".../table")
.rdd
.map(row => (row.getAs[String]("type"), row.getAs[Int]("id")))
.partitionBy(new HashPartitioner(2))
.countByKey()
Я получаю следующий DAG
Учитывая тот факт, что я хочу использовать стратегию разделения, уже используемую Parquet, есть способ избегать перетасовки?