随着delta lake的逐渐引入,打算将之前生成的分区报表 改成 delta。
流程上:
一:执行 转换操作 代码。
# 转换位于路径 /path/to/table 下的 Parquet 分区表,分区列是名为 part 的 integer 列DeltaTable.convertToDelta(spark, "parquet.`/user/hive/warehouse/nifi.db/vn9/ge_v9_bi_disp_detail`", "pt int")
这步操作,就是将 xxx1这张分区表,以 pt 分区,parquet格式存储的数据 改成了 delta存储。
执行后的样子是
![105d86f5f3fa11e68a75c675c02263ce.png](https://img-blog.csdnimg.cn/img_convert/105d86f5f3fa11e68a75c675c02263ce.png)
文件夹下会出现一个 _delta_log 这个目录,表示已经转换成功了。
二:数据写入
之前的结果是通过parquet写入,删除hdfs的文件等,现在变成delta了,这里需要变更下。
val filterSql = "pt>=" + fromTime.substring(0, 8) + " and pt=20200303 and pt<20200304"DeltaTable.forPath(s1, writePath)