Я использую Pyspark в Azure Databricks для преобразования данных перед их отправкой в приемник. В этом приемнике любой массив должен иметь длину не более 100. В моих данных у меня есть массив, длина которого всегда равна 300, и поле, указывающее, сколько из них имеют значение (
from math import ceil
def subsample(array:list,n_relevant:int)->list:
if n_relevant
Подробнее здесь: [url]https://stackoverflow.com/questions/79268222/pyspark-subset-array-based-on-other-column-value[/url]
Я использую Pyspark в Azure Databricks для преобразования данных перед их отправкой в приемник. В этом приемнике любой массив должен иметь длину не более 100. В моих данных у меня есть массив, длина которого всегда равна 300, и поле, указывающее, сколько из них имеют значение ([code]n_relevant[/code]). [code]n_relevantЗначения [/code] могут быть: [list] [*]ниже 100 -> тогда я хочу сохранить все значения [*]между 100 и 300 -> тогда я хочу выполнить подвыборку по модулю [*]выше 300 -> затем я хочу выполнить подвыборку по модулю 3 [/list] Например: [code]array: [1,2,3,4,5,...300] n_relevant: 4 desired outcome: [1,2,3,4]
array: [1,2,3,4,5,...300] n_relevant: 800 desired outcome: [1,4,7,...298] [/code] Эта небольшая программа отражает желаемое поведение: [code]from math import ceil
def subsample(array:list,n_relevant:int)->list: if n_relevant