写入配置单元后停止自动取消数据帧 table
stop auto unpersist of dataframe after writing to hive table
我想在写入配置单元后保留数据帧 table。
<change data capture code>
df.persist(StorageLevel.MEMORY_AND_DISK)
df.count() #count is 100
df.write.mode("append").insertInto("schema.table")
df.count() #count is 0 || because it's recalculating change data capture part
这里好像df在写入hive后变得不持久了。
这种行为是预期的吗?如果是,那么我们该如何解决?
将df转为rdd后可以持久化rdd
存储模式以便我们可以将 rdd 转换回 df
rdd_schema = df.schema
df_rdd = df.rdd.persist(StorageLevel.MEMORY_AND_DISK)
df.count() #count is 100
df.write.mode("append").insertInto("schema.table")
现在 df 消失了,所以我们可以使用持久化的 rdd 取回 df
df_persisted = spark.createDataFrame(df_rdd, schema=rdd_schema)
df_persisted.count() #count is 100 || This will calculate from persisted rdd
我想在写入配置单元后保留数据帧 table。
<change data capture code>
df.persist(StorageLevel.MEMORY_AND_DISK)
df.count() #count is 100
df.write.mode("append").insertInto("schema.table")
df.count() #count is 0 || because it's recalculating change data capture part
这里好像df在写入hive后变得不持久了。 这种行为是预期的吗?如果是,那么我们该如何解决?
将df转为rdd后可以持久化rdd
存储模式以便我们可以将 rdd 转换回 df
rdd_schema = df.schema
df_rdd = df.rdd.persist(StorageLevel.MEMORY_AND_DISK)
df.count() #count is 100
df.write.mode("append").insertInto("schema.table")
现在 df 消失了,所以我们可以使用持久化的 rdd 取回 df
df_persisted = spark.createDataFrame(df_rdd, schema=rdd_schema)
df_persisted.count() #count is 100 || This will calculate from persisted rdd