Apache spark 无法将spark数据帧写入gcs存储桶

Apache spark 无法将spark数据帧写入gcs存储桶,apache-spark,google-cloud-platform,google-cloud-storage,Apache Spark,Google Cloud Platform,Google Cloud Storage,作业已提交并成功运行。但是桶里没有数据。我应该如何解决它 df = spark.createDataFrame([["Amy", "lily", 12], ["john", "tom", 34]]).toDF(*["first_name", "last_name", "age"]) df.write.format("parquet").p

作业已提交并成功运行。但是桶里没有数据。我应该如何解决它

df = spark.createDataFrame([["Amy", "lily", 12], ["john", "tom", 34]]).toDF(*["first_name", "last_name", "age"])
df.write.format("parquet").partitionBy("age").option("path", "gs://my_bucket/my_table")

问题中的代码配置写入操作,但从不触发写入本身

为了实际触发写入操作,您需要调用
Writer
界面中的
save
函数之一

例如,以下内容将完成此工作:

df.write.format("parquet").partitionBy("age").option("path", "gs://my_bucket/my_table").save()
或:

甚至:

df.write.partitionBy("age").parquet("gs://my_bucket/my_table")

模式详情:

df.write
返回
DataFrameWriter
的实例;以下是API:

DataFrameWriter
API在其精神上与所有其他sparkapi是一致的:它是懒惰的。除非触发操作,否则不会执行任何操作。 为此,
DataFrameWriter
实例的行为类似于构建器模式实现:随后调用
格式
选项
模式
等。仅配置可能最终执行的写入操作。配置该操作后,您可以通过在此实例上调用
save
或类似方法来触发该操作

类似地,
DataFrameWriter
还允许您多次重复使用写入操作(例如,配置一组基本选项,然后调用两次以写入拼花地板和csv文件;或者写入不同的位置等)

df.write.partitionBy("age").parquet("gs://my_bucket/my_table")