остановка автоматического удаления данных из фрейма после записи в таблицу кустов - PullRequest
1 голос
/ 20 июня 2019

Я хочу сохранить фрейм данных даже после записи в таблицу кустов.

<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 перестает работать.Ожидается ли такое поведение, если да, то как мы можем это исправить?

1 Ответ

0 голосов
/ 16 июля 2019

вы можете сохранить rdd после преобразования df в 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
...