Is er een manier om de eerste 1000 rijen van een Spark-dataframe te nemen?

Ik gebruik de functie randomSplitom een ​​kleine hoeveelheid van een dataframe te gebruiken voor ontwikkelingsdoeleinden en uiteindelijk neem ik gewoon de eerste df die door deze functie wordt geretourneerd.

val df_subset = data.randomSplit(Array(0.00000001, 0.01), seed = 12345)(0)

Als ik df.take(1000)gebruik, krijg ik een array van rijen, geen dataframe, dus dat werkt niet voor mij.

Is er een betere, eenvoudigere manier om bijvoorbeeld de eerste 1000 rijen van de df te nemen en op te slaan als een andere df?


Antwoord 1, autoriteit 100%

De methode die u zoekt is .limit.

Retourneert een nieuwe dataset door de eerste n rijen te nemen. Het verschil tussen deze functie en head is dat head een array retourneert, terwijl limit een nieuwe dataset retourneert.

Voorbeeld van gebruik:

df.limit(1000)

Antwoord 2, autoriteit 2%

Limiet is heel eenvoudig, voorbeeld limiet eerste 50 rijen

val df_subset = data.limit(50)

Other episodes