Код из вопроса настраивает операцию записи, но никогда не запускает саму запись.
Чтобы действительно запустить операцию записи, вам нужно вызвать один из save
функции в интерфейсе Writer
.
Например, следующее выполнит задание:
df.write.format("parquet").partitionBy("age").option("path", "gs://my_bucket/my_table").save()
или:
df.write.format("parquet").partitionBy("age").save("gs://my_bucket/my_table")
или даже:
df.write.partitionBy("age").parquet("gs://my_bucket/my_table")
Детали режима:
df.write
возвращает экземпляр DataFrameWriter
; вот API: https://spark.apache.org/docs/2.4.6/api/scala/index.html#org. apache .spark. sql .DataFrameWriter
DataFrameWriter
API согласован по своему духу со всеми другими API Spark: это это ленивый . Ничего не выполняется, если не запускается действие. Для этого экземпляры DataFrameWriter
ведут себя аналогично реализации шаблона построителя: последующие вызовы format
, option
, mode
и др. настройте только операцию записи, которая может быть выполнена. После настройки операции ее можно запустить, вызвав save
или аналогичный метод в этом экземпляре.
Точно так же DataFrameWriter
также позволяет повторно использовать операцию записи несколько раз (например, настроить базу набор опций, а затем вызовите дважды, например, для записи файлов parquet и csv; или для записи в разные места, et c.).