Мне нужно разделить мои данные на 80 разделов, независимо от того, что является ключом данных, и каждый раз, когда данные должны повторять одно и то же значение раздела. Есть ли какой-нибудь алгоритм, который можно использовать для реализации того же. Ключ является комбинацией нескольких полей.
Я планирую создать суррогатный ключ для сочетания ключей и применить функцию диапазона, используя минимальные и максимальные значения, чтобы разбить данные на желаемое количество соотношений. Но если тот же ключ прибудет завтра, я должен оглянуться назад, чтобы получить суррогатный ключ, чтобы те же ключи попадали в один и тот же раздел.
Есть ли какая-либо существующая функция pyspark алгоритма / формулы, где я передаю строковое значение, он будет возвращать одно и то же число каждый раз, и он будет обеспечивать равномерное распределение строкового значения?
df_1=spark.sql("select column_1,column_2,column_2,hash(column_1) % 20 as part from temptable")
df_1.createOrReplaceTempView("test")
spark.sql("select part,count(*) from test group by part").show(160,False)