在运行Spark Streaming作业时定期执行配置单元查询而不会阻塞

时间:2019-03-27 15:38:38

标签: apache-spark hive pyspark apache-spark-sql spark-streaming

如何以非阻塞方式定期执行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

0 个答案:

没有答案