Scala: Como obter um intervalo de linhas em um dataframe

eu tenho umDataFrame criado executandosqlContext.read de um arquivo de parquet.

oDataFrame consiste em 300 M. linhas. Preciso usar essas linhas como entrada para outra função, mas quero fazê-lo em lotes menores para evitar erros de OOM.

Atualmente, estou usandodf.head(1000000) para ler as primeiras linhas de 1 milhão, mas não consigo encontrar uma maneira de ler as linhas subseqüentes. eu tenteidf.collect(), mas isso gera um erro do Java OOM.

Eu quero iterar sobre esse quadro de dados. Tentei adicionar outra coluna com a API withColumn () para gerar um conjunto exclusivo de valores para iterar, mas nenhuma das colunas existentes no dataframe possui apenas valores únicos.

Por exemplo, eu tentei valdf = df1.withColumn("newColumn", df1("col") + 1) assim comoval df = df1.withColumn("newColumn",lit(i+=1)), os quais não retornam um conjunto seqüencial de valores.

Qualquer outra maneira de obter as primeiras n linhas de um quadro de dados e as próximas n linhas, algo que funciona como uma função de intervalo deSqlContext?

questionAnswers(1)

yourAnswerToTheQuestion