У меня есть Dataframe df
, который имеет, среди прочих, столбец groupID
; то есть каждое наблюдение относится к определенной группе. Всего 8 групп. Я хотел бы пробовать от каждого groupID
определенный процент наблюдений (скажем, 20%). Вот мой подход делает это:Для цикла Spark dataframe
val sample_df = for (i <- Array.range(0,7)) yield {
val sel_df = df.filter($"groupID"===i)
sel_df.sample(false,0.2,seed1)
}
Результат этого кода:
Array[org.apache.spark.sql.DataFrame] = Array([text: string, groupID: int], [text: string, groupID: int])
Я применил flatMap()
на sample_df
, но я получил сообщение об ошибке:
val flat_df = sample_df.flatMap(x => x)
<console>:59: error: type mismatch;
found: org.apache.spark.sql.DataFrame
required: scala.collection.GenTraversableOnce[?]
Как может Я получаю выборочный кадр данных?
Отлично! Это решает! – aigujin