Я реализую источник данных Spark (v2) и не нашел способа обеспечить локальность данных.
В источнике данных v1 getPreferredLocations может быть реализован метод, что эквивалентно источнику данных v2?
getPreferredLocations
В источнике данных Spark v2 вы должны изменить на SupportsReportPartitioning
Я вижу, что кто-то обсуждает некоторые ограничения в этой проблеме SPARK-15689 - API источника данных v2
Так что SupportsReportPartitioning недостаточно мощен для поддержки пользовательских хеш-функций.Существует два основных оператора, которые могут вводить в случайном порядке: объединение и агрегирование.Агрегат должен только кластеризовать данные, но ему все равно, как источник данных v2 может его поддерживать, если ваша реализация перехватывает ClusteredDistribution.Для объединения необходимы данные двух дочерних элементов, сгруппированных с помощью хэш-функции spark shuffle, которая в настоящее время не поддерживается источником данных v2.