Контекст: у меня есть фрейм данных, который я запросил с помощью SQl. Из этого запроса я сохранил данные в фрейме данных, используя pandas на spark API. Теперь, после некоторых преобразований, я хотел бы сохранить этот новый фрейм данных в новой таблице в данной базе данных.
Пример:
spark = SparkSession.builder.appName('transformation').getOrCreate()
df_final = spark.sql("SELECT * FROM table")
df_final = ps.DataFrame(df_final)
## Write Frame out as Table
spark_df_final = spark.createDataFrame(df_final)
spark_df_final.write.mode("overwrite").saveAsTable("new_database.new_table")
но это не работает. Как я могу сохранить фреймворк данных pandas на spark API непосредственно в новую таблицу в базе данных (эта база данных еще не существует) Спасибо
Вы можете использовать следующую процедуру. У меня есть следующая демонстрационная таблица.
df_final = spark.sql("SELECT * FROM demo")
pdf = df_final.to_pandas_on_spark()
#print(type(pdf))
#<class 'pyspark.pandas.frame.DataFrame'>
spark_df = pdf.to_spark()
print(type(spark_df))
display(spark_df)
spark.sql("create database newdb")
spark_df.write.mode("overwrite").saveAsTable("newdb.new_table")
Проверьте это - sparkbyexamples.com/pyspark/convert-pandas-to-pyspark-dataframe