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
Övningsinstruktioner
- Koden för att skapa en
pandasDataFrame med slumpmässiga tal har redan tillhandahållits och sparats underpd_temp. - Skapa en Spark DataFrame som heter
spark_tempgenom att anropa Spark-metoden.createDataFrame()medpd_tempsom 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_tempDataFrame: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(____)