Передавать данные за пределы рабочей области Synapse с помощью соединителя PySpark

Завершено

Вы можете передавать данные в выделенный пул SQL и из него с помощью соединителя Pyspark, который в настоящее время работает со Scala.

Предположим, вы создали или загрузили кадр данных с именем pyspark_df и хотите записать его в хранилище данных. Как вы будете выполнять это задание?

Первое, что нужно сделать, — это создать временную таблицу в кадре данных в PySpark с помощью метода createOrReplaceTempView.

pyspark_df.createOrReplaceTempView("pysparkdftemptable")

Передаваемый параметр — это имя временной таблицы (в данном случае pysparkdftemptable). Мы по-прежнему используем кадр данных pyspark_df, как показано в начале оператора. Затем необходимо будет запустить ячейку Scala в записной книжке PySpark, используя магические команды (так как мы используем разные языки и она будет работать только в Scala):

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

Используя val scala_df, мы создаем фиксированное значение для scala_dataframe. Затем мы используем оператор select * from pysparkdftemptable, который возвращает все данные, созданные во временной таблице на предыдущем шаге, и сохраняем их в таблице sqlpool.dbo.PySparkTable.

Во второй строке кода мы указали следующие параметры:

  • DBName. Имя базы данных, которая в примере выше имеет название sqlpool.
  • Схема. Имя схемы, которая в примере выше имеет название dbo.
  • TableName. Имя таблицы, которая в примере выше имеет название PySparkTable.
  • TableType. Указывает тип таблицы, которая имеет значение Constants.INTERNAL, связанное с управляемой таблицей в выделенном пуле SQL.

Если вы хотите считывать данные с помощью соединителя PySpark, помните, что сначала данные необходимо считать с помощью Scala, а затем записать их во временную таблицу. Наконец, используйте Spark SQL в PySpark, чтобы запросить временную таблицу в кадре данных.