在ForeachBatch Function Structured Straming中,我想创建在微型批次中接收的数据帧的临时视图
func(tabdf, epoch_id):
tabaDf.createOrReplaceView("taba")
但是我得到了下面的错误:
org.apache.spark.sql.streaming.StreamingQueryException: Table or view not found: taba
Caused by: org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'taba' not found
请任何人帮助我解决这个问题。
发布于 2020-07-06 05:09:52
流查询使用自己的SparkSession,它是从启动查询的SparkSession克隆而来的。foreachBatch
提供的DataFrame
是从流查询的SparkSession创建的。因此,您无法使用原始SparkSession访问临时视图。
一种解决方法是使用createGlobalTempView/createOrReplaceGlobalTempView
创建全局临时视图。请注意,全局临时视图绑定到系统保留的数据库global_temp
,您需要使用限定名称来引用全局临时视图,例如SELECT * FROM global_temp.view1
。
https://stackoverflow.com/questions/62709024
复制