Överföra data utanför synapse-arbetsytan med hjälp av PySpark-anslutningsappen

Slutförd

Du kan överföra data till och från en dedikerad SQL-pool med hjälp av en Pyspark Connector, som för närvarande fungerar med Scala.

Anta att du har skapat eller läst in en dataram med namnet "pyspark_df" och sedan antar att du vill skriva dataramen till informationslagret. Hur skulle du gå till väga för den uppgiften?

Det första du behöver göra är att skapa en tillfällig tabell i en DataFrame i PySpark med metoden createOrReplaceTempView

pyspark_df.createOrReplaceTempView("pysparkdftemptable")

Parametern som skickas är det tillfälliga tabellnamnet, som i det här fallet kallas "pysparkdftemptable". Vi använder fortfarande pyspark_df DataFrame som du kan se i början av -instruktionen. Därefter skulle du behöva köra en Scala-cell i PySpark Notebook med hjälp av magi (eftersom vi använder olika språk, och det fungerar bara i Scala):

%%spark
val scala_df = spark.sqlContext.sql ("select * from pysparkdftemptable")
scala_df.write.sqlanalytics("sqlpool.dbo.PySparkTable", Constants.INTERNAL)

Genom att använda "val scala_df" skapar vi ett fast värde för scala_dataframe och använder sedan instruktionen "select * from pysparkdftemptable", som returnerar alla data som vi skapade i den tillfälliga tabellen i föregående steg och lagrar den i en tabell med namnet sqlpool.dbo.PySparkTable

På den andra raden i koden angav vi följande parametrar:

  • DBName: Databasnamnet som i exemplet ovan heter sqlpool
  • Schema: Schemanamnet som i exemplet ovan heter dbo
  • TableName: Tabellnamnet som i exemplet ovan heter PySparkTable
  • TableType: Anger vilken typ av tabell som har värdet Constants.INTERNAL, som är relaterad till en hanterad tabell i den dedikerade SQL-poolen.

Om du vill läsa data med hjälp av PySpark-anslutningsappen bör du först tänka på att du läser data med scala och sedan skriver dem i en tillfällig tabell. Slutligen använder du Spark SQL i PySpark för att köra frågor mot den tillfälliga tabellen till en DataFrame.