我能够使 deltalake 在本地工作以进行单元测试数据+spark 应用程序逻辑。
def readDeltaLake(path: String)(implicit sc: SparkSession): DataFrame =
sc.read
.format("org.apache.spark.sql.delta.sources.DeltaDataSource")
.load(path)
// local spark session
implicit val sparkSession: SparkSession = aSparkSession()
import sparkSession.implicits._
// path to scala/test/resources with parquet file
io.delta.tables.DeltaTable.convertToDelta(sparkSession, s"parquet.`${singleInput.getParent.toFile.getAbsolutePath}`")
val myTestData = readDeltaLake(singleInput.getParent.toFile.getAbsolutePath)
myTestData.count() shouldBe 42L
上面的代码工作正常,但我想用分区模仿真正的三角洲湖布局。 我的分区架构是:
hdfs://my_data/delta/ds=2024-05-27 23%3A00%3A00
我如何创建相同的东西,但具有日期分区?
根据评论和链接写增量:
val data = spark.range(5, 10)
data.partitionBy("","").write.format("delta").mode("overwrite").save("/tmp/delta-table")
df.show()