Spark 2.3创建临时视图后查询提示表不存在问题求助
问题排查与解决
核心错误:表名不匹配
你创建临时表时指定的名称是test_table1,但执行查询时写的是test_table,两者名称不一致,这是导致Table or view not found报错的直接原因。修正查询语句中的表名即可解决问题:
sqlContext.sql("select count(*) from test_table1 limit 100").show()
Spark 2.3临时表创建方法补充说明
在Spark 2.3版本中:
registerTempTable是Spark 1.x的遗留API,2.x版本中仍兼容,但官方更推荐使用createTempView。createTempView创建的是会话级临时视图,仅在当前SparkSession(或SQLContext)的会话范围内有效,会话结束后视图会自动销毁。- 如果需要跨多个会话共享临时表,可以使用
createGlobalTempView,查询时需加上global_temp.前缀,例如:df.createGlobalTempView('test_table1') sqlContext.sql("select count(*) from global_temp.test_table1 limit 100").show()
内容的提问来源于stack exchange,提问作者singularity2047
相关产品推荐
相关产品推荐

