Github user gatorsmile commented on a diff in the pull request:
https://github.com/apache/spark/pull/16460#discussion_r94533881
--- Diff:
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSource.scala
---
@@ -473,22 +473,26 @@ case class DataSource(
s"Unable to resolve $name given
[${plan.output.map(_.name).mkString(", ")}]")
}.asInstanceOf[Attribute]
}
+ val fileIndex = catalogTable.map(_.identifier).map { tableIdent =>
+ sparkSession.table(tableIdent).queryExecution.analyzed.collect {
+ case LogicalRelation(t: HadoopFsRelation, _, _) => t.location
+ }.head
+ }
// For partitioned relation r, r.schema's column ordering can be
different from the column
// ordering of data.logicalPlan (partition columns are all moved
after data column). This
// will be adjusted within InsertIntoHadoopFsRelation.
val plan =
InsertIntoHadoopFsRelationCommand(
outputPath = outputPath,
staticPartitions = Map.empty,
- customPartitionLocations = Map.empty,
partitionColumns = columns,
bucketSpec = bucketSpec,
fileFormat = format,
- refreshFunction = _ => Unit, // No existing table needs to be
refreshed.
--- End diff --
Previously, in this case, we do not call `refreshPartitionsCallback`. After
this PR, we always refresh it. Is my understanding right?
How did it work without this PR changes? Does that mean we just rely on
Hive to implicitly call `AlterTableAddPartitionCommand`/`createPartition` when
the existing table does not exist?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]