宇宙人*_*宇宙人 7 apache-spark spark-streaming apache-spark-sql
我正在使用Spark Streaming 2.1.我想定期刷新一些缓存表(由spark提供的DataSource,如镶木地板,MySQL或用户定义的数据源).
如何刷新表?
假设我有一些表加载
spark.read.format("").load().createTempView("my_table")
它也被缓存
spark.sql("cache table my_table")
是否足以使用以下代码刷新表,并且当下次加载表时,它将自动被缓存
spark.sql("refresh table my_table")
或者我必须手动执行此操作
spark.table("my_table").unpersist
spark.read.format("").load().createOrReplaceTempView("my_table")
spark.sql("cache table my_table")
同时刷新表是否安全?
并发我的意思是使用ScheduledThreadPoolExecutor除主线程之外的刷新工作.
当我在桌面上调用refresh时Spark会使用缓存表会发生什么?
小智 10
在Spark 2.2.0中,他们引入了刷新表元数据的功能,如果该表元数据是由hive或某些外部工具更新的。
您可以使用API来实现,
spark.catalog.refreshTable("my_table")
Run Code Online (Sandbox Code Playgroud)
该API将更新该表的元数据以使其保持一致。
| 归档时间: |
|
| 查看次数: |
9846 次 |
| 最近记录: |