Uh oh!
There was an error while loading. Please reload this page.
[SPARK-25135][SQL] Insert datasource table may all null when select from view - #22124
[SPARK-25135][SQL] Insert datasource table may all null when select from view#22124wangyum wants to merge 7 commits into
Conversation
wangyum
commented
Aug 16, 2018
SparkQA
commented
Aug 16, 2018
Test build #94861 has finished for PR 22124 at commit
|
| expected.name == actual.name && | ||
| expected.metadata == actual.metadata) { | ||
| expected.metadata == actual.metadata && | ||
| expected.exprId.id == actual.exprId.id) { |
There was a problem hiding this comment.
why does this fix the problem?
There was a problem hiding this comment.
This is not a correct change. please ignore this.
| // If the projection list contains Stars, expand it. | ||
| case p: Project if containsStar(p.projectList) => | ||
| p.copy(projectList = buildExpandedProjectList(p.projectList, p.child)) | ||
| case p @ Project(projectList, _ @ SubqueryAlias(_, view: View)) |
cloud-fan
commented
Aug 17, 2018
can you explain how this bug happens and what's the root cause? |
wangyum
commented
Aug 17, 2018
Thanks @cloud-fan I updated it in description. |
SparkQA
commented
Aug 17, 2018
Test build #94882 has finished for PR 22124 at commit
|
cloud-fan
commented
Aug 17, 2018
why the parquet file columns is lower-cased? the root project has names upper-cased, doesn't it? |
The root project should be consistent with the schema of the target table. But it is inconsistent now. Before this PR: After this PR: Before SPARK-22834 |
SparkQA
commented
Aug 18, 2018
Test build #94921 has finished for PR 22124 at commit
|
cloud-fan
commented
Aug 18, 2018
Can you point out in the codebase where the inconsistency comes from? |
wangyum
commented
Aug 18, 2018
gengliangwang
commented
Aug 19, 2018
Hi @wangyum , thanks for working on this. |
cloud-fan
commented
Aug 20, 2018
| def apply(plan: LogicalPlan): LogicalPlan = { | ||
| plan match { | ||
| case c: Command => c | ||
| case _ => removeRedundantAliases(plan, AttributeSet.empty) |
There was a problem hiding this comment.
I don't get it. For the query
*(1) Project [col1#8L AS COL1#14L, col2#9L AS COL2#15L]
+- *(1) Filter (isnotnull(col1#8L) && (col1#8L > -20))
+- *(1) FileScan parquet default.table1[col1#8L,col2#9L] Batched: true, Format: Parquet, Location: InMemoryFileIndex[file:/tmp/yumwang/spark/parquet], PartitionFilters: [], PushedFilters: [IsNotNull(col1), GreaterThan(col1,-20)], ReadSchema: struct<col1:bigint,col2:bigint>
Why is the alias treated as redundant? The name does change, isn't it?
There was a problem hiding this comment.
Yes, this is correct. Without this PR, RemoveRedundantAliases works like this:
===ApplyingRule org.apache.spark.sql.catalyst.optimizer.RemoveRedundantAliases===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-ae504f50-9543-49fb-a InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-ae504f50-9543-49fb-acf
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2003:03:52PDT2018CreatedTime:MonAug2003:03:52PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: hive Provider: hive
TableProperties: [transient_lastDdlTime=1534759432] TableProperties: [transient_lastDdlTime=1534759432]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-ae504f50-9543-49fb-acf0-8b2736665d26/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-ae504f50-9543-49fb-acf0-8b2736665d26/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
PartitionProvider:CatalogPartitionProvider:CatalogSchema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
--COL2: long (nullable =true) |--COL2: long (nullable =true)
!), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@60582d55, [COL1#10L, COL2#11L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@60582d55, [col1#8L, col2#9L]
!+-Project [col1#8LAS col1#10L, col2#9LAS col2#11L] +-Project [col1#8L, col2#9L]
+-Filter (col1#8L>-20) +-Filter (col1#8L>-20)
+-Relation[col1#8L,col2#9L] parquet +-Relation[col1#8L,col2#9L] parquetThere was a problem hiding this comment.
For example:
valpath="/tmp/spark/parquet"valcnt=30
spark.range(cnt).selectExpr("id as col1").write.mode("overwrite").parquet(path)
spark.sql(s"CREATE TABLE table1(col1 bigint) using parquet location '$path'")
spark.sql("create view view1 as select col1 from table1 where col1 > -20")
// The column name of table2 is inconsistent with the column name of view1.
spark.sql("create table table2 (COL1 BIGINT) using parquet")
// When querying the view, ensure that the column name of the query matches the column name of the target table.
spark.sql("insert overwrite table table2 select COL1 from view1")The execution plan change track:
===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences===!'Project ['idAS col1#2] Project [id#0LAS col1#2L]
+-Range (0, 30, step=1, splits=Some(1)) +-Range (0, 30, step=1, splits=Some(1))
17:02:55.061WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.CleanupAliases===Project [id#0LAS col1#2L] Project [id#0LAS col1#2L]
+-Range (0, 30, step=1, splits=Some(1)) +-Range (0, 30, step=1, splits=Some(1))
17:02:59.174WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.DataSourceAnalysis===!'CreateTable `table1`, ErrorIfExistsCreateDataSourceTableCommand `table1`, false17:02:59.909WARN org.apache.hadoop.hive.metastore.ObjectStore:Failed to get database global_temp, returning NoSuchObjectException17:03:00.094WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations==='Project ['col1] 'Project ['col1]
+-'Filter ('col1>-20) +-'Filter ('col1>-20)
!+-'UnresolvedRelation `table1` +-'SubqueryAlias `default`.`table1`
!+-'UnresolvedCatalogRelation `default`.`table1`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe17:03:00.254WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.FindDataSourceTable==='Project ['col1] 'Project ['col1]
+-'Filter ('col1>-20) +-'Filter ('col1>-20)
!+-'SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
!+-'UnresolvedCatalogRelation `default`.`table1`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe+-Relation[col1#5L] parquet
17:03:00.267WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences==='Project ['col1] 'Project ['col1]
!+-'Filter ('col1>-20) +-'Filter (col1#5L>-20)
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.306WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.TypeCoercion$ImplicitTypeCasts==='Project ['col1] 'Project ['col1]
!+-'Filter (col1#5L>-20) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.309WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences===!'Project ['col1] Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.314WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.ResolveTimeZone===Project [col1#5L] Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.383WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.DataSourceAnalysis===!'CreateTable `table2`, ErrorIfExistsCreateDataSourceTableCommand `table2`, false17:03:00.729WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations==='Project ['col1] 'Project ['col1]
+-'Filter ('col1>-20) +-'Filter ('col1>-20)
!+-'UnresolvedRelation `table1` +-'SubqueryAlias `default`.`table1`
!+-'UnresolvedCatalogRelation `default`.`table1`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe17:03:00.730WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.FindDataSourceTable==='Project ['col1] 'Project ['col1]
+-'Filter ('col1>-20) +-'Filter ('col1>-20)
!+-'SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
!+-'UnresolvedCatalogRelation `default`.`table1`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe+-Relation[col1#5L] parquet
17:03:00.731WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences==='Project ['col1] 'Project ['col1]
!+-'Filter ('col1>-20) +-'Filter (col1#5L>-20)
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.734WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.TypeCoercion$ImplicitTypeCasts==='Project ['col1] 'Project ['col1]
!+-'Filter (col1#5L>-20) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.735WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences===!'Project ['col1] Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.737WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.ResolveTimeZone===Project [col1#5L] Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.742WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations==='InsertIntoTable'UnresolvedRelation `table2`, true, false'InsertIntoTable'UnresolvedRelation `table2`, true, false+-'Project ['COL1] +-'Project ['COL1]
!+-'UnresolvedRelation `view1` +-SubqueryAlias `default`.`view1`
!+-View (`default`.`view1`, [col1#6L])
!+-Project [col1#5L]
!+-Filter (col1#5L> cast(-20asbigint))
!+-SubqueryAlias `default`.`table1`
!+-Relation[col1#5L] parquet
17:03:00.744WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences==='InsertIntoTable'UnresolvedRelation `table2`, true, false'InsertIntoTable'UnresolvedRelation `table2`, true, false!+-'Project ['COL1] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
+-Project [col1#5L] +-Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.768WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations===!'InsertIntoTable'UnresolvedRelation `table2`, true, false'InsertIntoTable'UnresolvedCatalogRelation `default`.`table2`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe, true, false+-Project [COL1#6L] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
+-Project [col1#5L] +-Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:00.852WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.FindDataSourceTable===!'InsertIntoTable'UnresolvedCatalogRelation `default`.`table2`, org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe, true, false'InsertIntoTableRelation[COL1#7L] parquet, true, false+-Project [COL1#6L] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
+-Project [col1#5L] +-Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
DataSourceStrategy1:COL1#8LDataSourceStrategy2:COL1#6L17:03:00.896WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.execution.datasources.DataSourceAnalysis===!'InsertIntoTableRelation[COL1#7L] parquet, true, falseInsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
!+-Project [COL1#6L] Database: default
!+-SubqueryAlias `default`.`view1` Table: table2
!+-View (`default`.`view1`, [col1#6L]) Owner: yumwang
!+-Project [col1#5L] CreatedTime:MonAug2017:03:00PDT2018!+-Filter (col1#5L> cast(-20asbigint)) LastAccess:WedDec3116:00:00PST1969!+-SubqueryAlias `default`.`table1` CreatedBy:Spark2.4.0-SNAPSHOT!+-Relation[col1#5L] parquet Type:MANAGED!Provider: parquet
!TableProperties: [transient_lastDdlTime=1534809780]
!Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
!SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe!InputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat!OutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat!StorageProperties: [serialization.format=1]
!Schema: root
!|--COL1: long (nullable =true)
! ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
!+-Project [COL1#6L]
!+-SubqueryAlias `default`.`view1`
!+-View (`default`.`view1`, [col1#6L])
!+-Project [col1#5L]
!+-Filter (col1#5L> cast(-20asbigint))
!+-SubqueryAlias `default`.`table1`
!+-Relation[col1#5L] parquet
17:03:00.916WARN org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1:===ApplyingRule org.apache.spark.sql.catalyst.analysis.AliasViewChild===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [COL1#6L] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
!+-Project [col1#5L] +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Filter (col1#5L> cast(-20asbigint)) +-Project [col1#5L]
!+-SubqueryAlias `default`.`table1` +-Filter (col1#5L> cast(-20asbigint))
!+-Relation[col1#5L] parquet +-SubqueryAlias `default`.`table1`
!+-Relation[col1#5L] parquet
yumwang123:COL1#6L17:03:00.949WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.analysis.EliminateSubqueryAliases===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [COL1#6L] +-Project [COL1#6L]
!+-SubqueryAlias `default`.`view1` +-View (`default`.`view1`, [col1#6L])
!+-View (`default`.`view1`, [col1#6L]) +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Project [cast(col1#5Lasbigint) AS col1#6L] +-Project [col1#5L]
!+-Project [col1#5L] +-Filter (col1#5L> cast(-20asbigint))
!+-Filter (col1#5L> cast(-20asbigint)) +-Relation[col1#5L] parquet
!+-SubqueryAlias `default`.`table1` !+-Relation[col1#5L] parquet 17:03:00.959WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.analysis.EliminateView===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [COL1#6L] +-Project [COL1#6L]
!+-View (`default`.`view1`, [col1#6L]) +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Project [cast(col1#5Lasbigint) AS col1#6L] +-Project [col1#5L]
!+-Project [col1#5L] +-Filter (col1#5L> cast(-20asbigint))
!+-Filter (col1#5L> cast(-20asbigint)) +-Relation[col1#5L] parquet
!+-Relation[col1#5L] parquet 17:03:00.975WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.ColumnPruning===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
!+-Project [COL1#6L] +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Project [cast(col1#5Lasbigint) AS col1#6L] +-Filter (col1#5L> cast(-20asbigint))
!+-Project [col1#5L] +-Relation[col1#5L] parquet
!+-Filter (col1#5L> cast(-20asbigint)) !+-Relation[col1#5L] parquet 17:03:00.980WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.ConstantFolding===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [cast(col1#5Lasbigint) AS col1#6L] +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L>-20)
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:01.047WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.SimplifyCasts===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
!+-Project [cast(col1#5Lasbigint) AS col1#6L] +-Project [col1#5LAS col1#6L]
+-Filter (col1#5L>-20) +-Filter (col1#5L>-20)
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:01.058WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.RemoveRedundantAliases===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
!), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
!+-Project [col1#5LAS col1#6L] +-Project [col1#5L]
+-Filter (col1#5L>-20) +-Filter (col1#5L>-20)
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
17:03:01.061WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.ColumnPruning===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
!+-Project [col1#5L] +-Filter (col1#5L>-20)
!+-Filter (col1#5L>-20) +-Relation[col1#5L] parquet
!+-Relation[col1#5L] parquet 17:03:01.116WARN org.apache.spark.sql.internal.BaseSessionStateBuilder$$anon$2:===ApplyingRule org.apache.spark.sql.catalyst.optimizer.InferFiltersFromConstraints===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
!+-Filter (col1#5L>-20) +-Filter (isnotnull(col1#5L) && (col1#5L>-20))
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet
queryExecution:==ParsedLogicalPlan=='InsertIntoTable'UnresolvedRelation `table2`, true, false+-'Project ['COL1]
+-'UnresolvedRelation `view1`
==AnalyzedLogicalPlan==InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default
Table: table2
Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDProvider: parquet
TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1]
Schema: root
--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [COL1#6L]
+-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L])
+-Project [cast(col1#5Lasbigint) AS col1#6L]
+-Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet
==OptimizedLogicalPlan==InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default
Table: table2
Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDProvider: parquet
TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1]
Schema: root
--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
+-Filter (isnotnull(col1#5L) && (col1#5L>-20))
+-Relation[col1#5L] parquet
==PhysicalPlan==ExecuteInsertIntoHadoopFsRelationCommandInsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default
Table: table2
Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDProvider: parquet
TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1]
Schema: root
--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
+-*(1) Project [col1#5L]
+-*(1) Filter (isnotnull(col1#5L) && (col1#5L>-20))
+-*(1) FileScan parquet default.table1[col1#5L] Batched:true, Format:Parquet, Location:InMemoryFileIndex[file:/tmp/spark/parquet], PartitionFilters: [], PushedFilters: [IsNotNull(col1), GreaterThan(col1,-20)], ReadSchema: struct<col1:bigint>The main 3 changes are:
===ApplyingRule org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences==='InsertIntoTable'UnresolvedRelation `table2`, true, false'InsertIntoTable'UnresolvedRelation `table2`, true, false!+-'Project ['COL1] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
+-Project [col1#5L] +-Project [col1#5L]
+-Filter (col1#5L> cast(-20asbigint)) +-Filter (col1#5L> cast(-20asbigint))
+-SubqueryAlias `default`.`table1` +-SubqueryAlias `default`.`table1`
+-Relation[col1#5L] parquet +-Relation[col1#5L] parquet===ApplyingRule org.apache.spark.sql.catalyst.analysis.AliasViewChild===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L]
+-Project [COL1#6L] +-Project [COL1#6L]
+-SubqueryAlias `default`.`view1` +-SubqueryAlias `default`.`view1`
+-View (`default`.`view1`, [col1#6L]) +-View (`default`.`view1`, [col1#6L])
!+-Project [col1#5L] +-Project [cast(col1#5Lasbigint) AS col1#6L]
!+-Filter (col1#5L> cast(-20asbigint)) +-Project [col1#5L]
!+-SubqueryAlias `default`.`table1` +-Filter (col1#5L> cast(-20asbigint))
!+-Relation[col1#5L] parquet +-SubqueryAlias `default`.`table1`
!+-Relation[col1#5L] parquet===ApplyingRule org.apache.spark.sql.catalyst.optimizer.RemoveRedundantAliases===InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable( InsertIntoHadoopFsRelationCommand file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2, false, Parquet, Map(serialization.format ->1, path -> file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2), Overwrite, CatalogTable(
Database: default Database: default
Table: table2 Table: table2
Owner: yumwang Owner: yumwang
CreatedTime:MonAug2017:03:00PDT2018CreatedTime:MonAug2017:03:00PDT2018LastAccess:WedDec3116:00:00PST1969LastAccess:WedDec3116:00:00PST1969CreatedBy:Spark2.4.0-SNAPSHOTCreatedBy:Spark2.4.0-SNAPSHOTType:MANAGEDType:MANAGEDProvider: parquet Provider: parquet
TableProperties: [transient_lastDdlTime=1534809780] TableProperties: [transient_lastDdlTime=1534809780]
Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2 Location: file:/private/var/folders/tg/f5mz46090wg7swzgdc69f8q03965_0/T/warehouse-04d554d2-7ddb-4e13-b065-164afe065972/table2
SerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeSerdeLibrary: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDeInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatInputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatOutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormatStorageProperties: [serialization.format=1] StorageProperties: [serialization.format=1]
Schema: root Schema: root
--COL1: long (nullable =true) |--COL1: long (nullable =true)
!), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [COL1#6L] ), org.apache.spark.sql.execution.datasources.InMemoryFileIndex@c613921e, [col1#5L]
!+-Project [col1#5LAS col1#6L] +-Project [col1#5L]
+-Filter (col1#5L>-20) +-Filter (col1#5L>-20)
+-Relation[col1#5L] parquetWe need COL1#6L, but after some optimization, the outputColumns changed to col1#5L.
SparkQA
commented
Aug 20, 2018
Test build #94948 has finished for PR 22124 at commit
|
SparkQA
commented
Aug 20, 2018
Test build #94955 has finished for PR 22124 at commit
|
# Conflicts: # sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
cloud-fan
commented
Aug 21, 2018
@wangyum please don't rush into code changes, it's more efficient to come up with a good solution before doing any coding work.
This is the key. We must find out which optimizer rule caused it and how. |
SparkQA
commented
Aug 21, 2018
Test build #95006 has finished for PR 22124 at commit
|
wangyum
commented
Aug 30, 2018
close it. I have create a new PR. |

What changes were proposed in this pull request?
How to reproduce:
The root cause is when insert a table contains view. for example:
the execution plan optimized to:
At this time the
outputColumnsiscol1#5L. So spark will usecol1as the column name of the parquet.Before SPARK-22834. The
allColumnsisqueryExecution.analyzed.output, it's not optimized.I have three ways to solve this issue:
Read the column name in the view with the actual column name. but it is difficult to handle all cases. Please see the third commit.
Do not remove redundant alias if plan is
Command. Because alias may be useful.Change this line from
case a if resolver(a.name, name) => a.withName(name)tocase a if resolver(a.name, name) => a. But this change will cause some test failures:This pr use the second way to fix this issue.
How was this patch tested?
unit tests