使用Spark 3.3.1客户端创建view同时join查询数据写入报错,提示 Not allowed to create a permanent view
问题描述
使用Spark 3.3.1客户端创建子查询带聚合函数的视图,在数据写入报错,提示“Not allowed to create a permanent view without explicitly assigning an alias for expression count”。
问题分析
为了解决不同版本视图中默认别名不一致导致schema兼容性问题,Spark 3.2.0版本新增对视图的约束导致在创建视图同时join查询数据写入报错。
解决方案
为了与Spark 3.2.0之前版本使用行为一致,可以通过客户端设置参数“spark.sql.legacy.allowAutoGeneratedAliasForView=true”解决。