Överföra data utanför synapse-arbetsytan med hjälp av PySpark-anslutningsappen
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.