У меня набор данных равномерно разделен по количеству записей на раздел, но некоторые разделы имеют размер данных, который в 4 или более раз больше, чем другие. У каждой записи есть своя коллекция, и я полагаю, что в некоторых записях она может быть намного больше. Это вызывает то, что похоже на искажение данных, некоторые разделы занимают намного больше времени из-за несбалансированных записей. Если бы я мог включить ведение журнала в Spark, чтобы печатать размер в байтах каждого обрабатываемого раздела и размер строки, это могло бы помочь мне в устранении неполадок. Потому что данные отправляются в Cassandra с помощью их коннектора Spark, который выполняет собственное переразбиение.
Есть ли способ сделать искровое повторное разделение по размеру, а не по количеству данных
comment
Проверьте этот ответ - stackoverflow.com/questions/61338374/
- person Srinivas   schedule 11.05.2020
comment
Я уже делаю репартитоны, и у них примерно такое же количество записей. Я думаю, что, поскольку строки содержат массивы, разница может быть большой. ваша ссылка, кажется, указывает на то, что, возможно, я мог бы хотя бы зарегистрировать размер каждого раздела или строки во время работы Spark. Это поможет устранить эту проблему.
- person Fabio   schedule 11.05.2020
Ответы (1)
Невозможно повторно разделить набор данных по размеру. В моем случае у меня был массив, в некоторых строках которого будет очень много записей. Это явилось аномалией данных, и я смог отфильтровать эти строки, просто добавив фильтр к набору данных.
df.filter( size($colname) < 1000)
person
Fabio
schedule
11.06.2020