spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ruslan Dautkhanov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SPARK-16803) SaveAsTable does not work when source DataFrame is built on a Hive Table
Date Wed, 05 Jul 2017 18:19:00 GMT

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

Ruslan Dautkhanov commented on SPARK-16803:
-------------------------------------------

Any chance `saveAsTable` can be reverted to use `insertInto()`? Like it was in Spark 1.6.
So this will fix the problem.
The PR only changed error message, not underlying root cause problem.
Thanks.

> SaveAsTable does not work when source DataFrame is built on a Hive Table
> ------------------------------------------------------------------------
>
>                 Key: SPARK-16803
>                 URL: https://issues.apache.org/jira/browse/SPARK-16803
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.0.0
>            Reporter: Xiao Li
>            Assignee: Xiao Li
>             Fix For: 2.1.0
>
>
> {noformat}
> scala> sql("create table sample.sample stored as SEQUENCEFILE as select 1 as key,
'abc' as value")
> res2: org.apache.spark.sql.DataFrame = []
> scala> val df = sql("select key, value as value from sample.sample")
> df: org.apache.spark.sql.DataFrame = [key: int, value: string]
> scala> df.write.mode("append").saveAsTable("sample.sample")
> scala> sql("select * from sample.sample").show()
> +---+-----+
> |key|value|
> +---+-----+
> |  1|  abc|
> |  1|  abc|
> +---+-----+
> {noformat}
> In Spark 1.6, it works, but Spark 2.0 does not work. The error message from Spark 2.0
is
> {noformat}
> scala> df.write.mode("append").saveAsTable("sample.sample")
> org.apache.spark.sql.AnalysisException: Saving data in MetastoreRelation sample, sample
>  is not supported.;
> {noformat}
> So far, we do not plan to support it in Spark 2.0. Spark 1.6 works because it internally
uses {{insertInto}}. But, if we change it back it will break the semantic of {{saveAsTable}}
(this method uses by-name resolution instead of using by-position resolution used by {{insertInto}}).
> Instead, users should use {{insertInto}} API. We should correct the error messages. Users
can understand how to bypass it before we support it. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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


Mime
View raw message