[ 
https://issues.apache.org/jira/browse/SPARK-25135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16597742#comment-16597742
 ] 

Yuming Wang commented on SPARK-25135:
-------------------------------------

[~dongjoon] orc has this issue. reproduce code:
{code:scala}
    withTempPath { dir =>
      val path = dir.getCanonicalPath
      val cnt = 30
      val table1Path = s"$path/table1"
      val table2Path = s"$path/table2"
      val data =
        spark.range(cnt).selectExpr("cast(id as bigint) as col1", "cast(id % 3 
as bigint) as col2")
      data.write.mode(SaveMode.Overwrite).orc(table1Path)
      withTable("table1", "table2", "table3") {
        spark.sql(
          s"CREATE TABLE table1(col1 bigint, col2 bigint) using orc location 
'$table1Path'")
        spark.sql(
          s"CREATE TABLE table2(COL1 bigint, COL2 bigint) using orc location 
'$table2Path'")

        withView("view1") {
          spark.sql("CREATE VIEW view1 as select col1, col2 from table1 where 
col1 > -20")
          spark.sql("INSERT OVERWRITE TABLE table2 select COL1, COL2 from 
view1")
          checkAnswer(spark.table("table2"), data)
          assert(spark.read.orc(table2Path).schema === 
spark.table("table2").schema)
        }
      }
    }
{code}
result should be:

{noformat}
Expected :StructType(StructField(COL1,LongType,true), 
StructField(COL2,LongType,true))
Actual   :StructType(StructField(col1,LongType,true), 
StructField(col2,LongType,true))
{noformat}


> insert datasource table may all null when select from view on parquet
> ---------------------------------------------------------------------
>
>                 Key: SPARK-25135
>                 URL: https://issues.apache.org/jira/browse/SPARK-25135
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.3.0, 2.3.1
>            Reporter: Yuming Wang
>            Priority: Blocker
>              Labels: Parquet, correctness
>
> This happens on parquet.
> How to reproduce in parquet.
> {code:scala}
> val path = "/tmp/spark/parquet"
> val cnt = 30
> spark.range(cnt).selectExpr("cast(id as bigint) as col1", "cast(id as bigint) 
> as col2").write.mode("overwrite").parquet(path)
> spark.sql(s"CREATE TABLE table1(col1 bigint, col2 bigint) using parquet 
> location '$path'")
> spark.sql("create view view1 as select col1, col2 from table1 where col1 > 
> -20")
> spark.sql("create table table2 (COL1 BIGINT, COL2 BIGINT) using parquet")
> spark.sql("insert overwrite table table2 select COL1, COL2 from view1")
> spark.table("table2").show
> {code}
> FYI, the following is orc.
> {code}
> scala> val path = "/tmp/spark/orc"
> scala> val cnt = 30
> scala> spark.range(cnt).selectExpr("cast(id as bigint) as col1", "cast(id as 
> bigint) as col2").write.mode("overwrite").orc(path)
> scala> spark.sql(s"CREATE TABLE table1(col1 bigint, col2 bigint) using orc 
> location '$path'")
> scala> spark.sql("create view view1 as select col1, col2 from table1 where 
> col1 > -20")
> scala> spark.sql("create table table2 (COL1 BIGINT, COL2 BIGINT) using orc")
> scala> spark.sql("insert overwrite table table2 select COL1, COL2 from view1")
> scala> spark.table("table2").show
> +----+----+
> |COL1|COL2|
> +----+----+
> |  15|  15|
> |  16|  16|
> |  17|  17|
> ...
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to