如何以非阻塞方式定期执行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()
使用spark 2.3.0