背景
我们使用spark在做etl加工时,有时会遇到累积库迭代更新数据需求,但又没有首份数据可用,这个时候,就需要创建一个仅带schema信息的空数据路径。
方案一
利用schema创建,参见sparkSQL自定义schema的方法
- 方法一:
import spark.implicits._
import org.apache.spark.sql.Row
spark.createDataFrame(spark.sparkContext.emptyRDD[Row], myschema).write.parquet("/topath")
方案二
利用case class样例类创建,假设MyClass是定义好的样例类
- 方法一
spark.createDataFrame(spark.sparkContext.emptyRDD[MyClass]).write.parquet("/topath")
- 方法二
spark.sparkContext.emptyRDD[MyClass].toDF.write.parquet("/topath")
- 方法三
import spark.implicits._
spark.emptyDataset[MyClass].write.parquet("/topath")