Scala: как получить диапазон строк в кадре данных
у меня естьDataFrame
создан бегомsqlContext.read
паркетной пилки.
DataFrame
состоит из 300 м рядов. Мне нужно использовать эти строки в качестве входных данных для другой функции, но я хочу сделать это небольшими партиями, чтобы предотвратить ошибку OOM.
В настоящее время я используюdf.head(1000000)
читать первые 1М строк, но я не могу найти способ прочитать последующие строки. Я старалсяdf.collect()
, но это дает мне ошибку Java OOM.
Я хочу перебрать этот фрейм данных. Я попытался добавить еще один столбец с помощью API withColumn (), чтобы сгенерировать уникальный набор значений для итерации, но ни один из существующих столбцов в кадре данных не имеет исключительно уникальных значений.
Например, я пробовал valdf = df1.withColumn("newColumn", df1("col") + 1)
так же какval df = df1.withColumn("newColumn",lit(i+=1))
оба из которых не возвращают последовательный набор значений.
Любой другой способ получить первые n строк кадра данных, а затем следующие n строк, что-то, что работает как функция диапазонаSqlContext
?