Как периодически выполнять запрос MSCK REPAIR TABLE database.table
неблокирующим способом? Поддерживает ли Spark Streaming это изначально или я должен полагаться на модуль потоков Python?
У меня есть потоковое задание, в котором данные хранятся в виде паркетных файлов. Я хочу периодически обновлять таблицу Hive, которая определена поверх файлов паркета.
Я хочу сделать что-то вроде следующего:
df = (spark.readStream
.format('parquet')
.schema(schema)
.load(input_directory)
df.writeStream
.format('parquet')
.queryName('process')
.trigger(processing_time)
.outputMode('append')
.option('checkpointLocation', checkpoint_dir)
.partitionBy(partition)
.start(output_directory)
repair_query = spark.sql("MSCK REPAIR TABLE db.table", interval='10 seconds')
[query.awaitTermination() for query in spark.streams.active]
repair_query.stop()
Использование искры 2.3.0