Kom igångKom igång gratis

Lägg till Spark i dina data

I den förra övningen såg du hur man flyttar data från Spark till pandas. Men kanske vill du göra tvärtom – och föra in en pandas DataFrame i ett Spark-kluster! Klassen SparkSession har en metod för det också.

Metoden .createDataFrame() tar en pandas DataFrame och returnerar en Spark DataFrame.

Resultatet av den här metoden lagras lokalt, inte i SparkSession-katalogen. Det innebär att du kan använda alla Spark DataFrame-metoder på den, men du kan inte komma åt datan i andra sammanhang.

En SQL-fråga (med metoden .sql()) som refererar till din DataFrame ger till exempel ett fel. För att komma åt datan på det sättet måste du spara den som en tillfällig tabell.

Det gör du med Spark DataFrame-metoden .createTempView(), som tar namnet på den tillfälliga tabellen du vill registrera som enda argument. Den här metoden registrerar DataFrame:n som en tabell i katalogen, men eftersom tabellen är tillfällig går den bara att nå från den specifika SparkSession som användes för att skapa Spark DataFrame:n.

Det finns också metoden .createOrReplaceTempView(). Den skapar tryggt en ny tillfällig tabell om ingen fanns sedan tidigare, eller uppdaterar en befintlig tabell om en redan var definierad. Du använder den här metoden för att undvika problem med dubbletter av tabeller.

Titta på diagrammet för att se alla de olika sätten som dina Spark-datastrukturer samspelar med varandra.

Det finns redan en SparkSession som heter spark i din arbetsmiljö, numpy har importerats som np och pandas som pd.

Den här övningen är en del av kursen

Grunderna i PySpark

Visa kurs

Övningsinstruktioner

  • Koden för att skapa en pandas DataFrame med slumpmässiga tal har redan tillhandahållits och sparats under pd_temp.
  • Skapa en Spark DataFrame som heter spark_temp genom att anropa Spark-metoden .createDataFrame() med pd_temp som argument.
  • Undersök listan över tabeller i ditt Spark-kluster och verifiera att den nya DataFrame:n inte finns där. Kom ihåg att du kan använda spark.catalog.listTables() för det.
  • Registrera spark_temp DataFrame:n som du just skapade som en tillfällig tabell med metoden .createOrReplaceTempView(). Den tillfälliga tabellen ska heta "temp". Kom ihåg att tabellnamnet anges som det enda argumentet till metoden!
  • Undersök listan över tabeller igen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Create pd_temp
pd_temp = pd.DataFrame(np.random.random(10))

# Create spark_temp from pd_temp
spark_temp = ____

# Examine the tables in the catalog
print(____)

# Add spark_temp to the catalog
spark_temp.____

# Examine the tables in the catalog again
print(____)
Redigera och kör kod