Рандомизация Dataframe или RDD для обучения ML в Spark

Как я могу случайным образом перетасовать свои тренировочные данные для классификатора Spark?

Прямо сейчас у меня есть dataframe, где первые N строк от положительного класса, а остальные M строк от отрицательного класса, и я пытаюсь обучить pyspark.mllib.classification.LogisticRegressionWithSGD.

Если я рандомизирую фрейм данных, используя orderBy(rand()):

lr = LogisticRegressionWithSGD()
train_data = train_data.orderBy(rand())
model = lr.train(train_data.map(lambda r: LabeledPoint(float(r.label), r.features)))

Spark будет аварийно завершать работу с ошибками, связанными с недетерминированными вычислениями (предположительно, потому что он будет повторно выполнять orderBy(rand()) в середине обучения).

0 ответов

Другие вопросы по тегам