我正在尝试迁移一些spark工作流使用本地hadoop到谷歌云存储。
假设VPC、网络、云互连和防火墙都井然有序,那么如何将avro文件(目前在parquet中)写入外部目的地(如google云存储)呢?在使用oozie &比如Spark-submit ?我需要将谷歌云存储映射为一个位置吗?我们想摆脱在HDFS中存储东西,但是现在所有的工作流目的地都在写入hadoop中。
您可以使用DistCp而不是Spark来处理现有数据,并配置oozie来运行它。
对于新的或现有的Spark作业,您将需要云存储连接器并在Spark的core-site.xml
中配置它,然后您应该能够将数据帧写入GCS
val dataframe = spark.read.load("hdfs://some/data") // existing parquet files
dataframe.write
.format("avro")
.save("gs://bucket/path")
Spark Avro数据源