如何使用Scala从Spark中升级ORC Hive表



我想更新一个orc格式的配置单元表,我可以从我的ambari配置单元视图进行更新,但无法从sacla(spark-shell)运行相同的更新语句

objHiveContext.sql("select*from table_name")可以查看数据,但当我运行时

objHiveContext.sql("update table_name set column_name='testing'")无法运行,当我能够从Ambari视图进行更新时(当我设置了所有必需的配置,即TBLPROPERTIES"orc.compress"="NONE"transactional true等),出现了一些不熟悉的异常(更新附近的无效语法等)

尝试使用Insert插入用例语句和all,但无法我们可以从spark更新配置单元ORC表吗?如果是,程序是什么?

低于进口

import org.apache.spark.SparkConf
import org.apache.spark.SparkConf
import org.apache.spark._
import org.apache.spark.sql._
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.sql.hive.orc._

注意:我没有在那张表上应用任何分区或分段如果我应用bucketing,当存储为ORC时,我甚至无法查看数据配置单元版本:1.2.1Spark版本:1.4.1Scala版本:2.10.6

您是否尝试过使用SaveMode的DataFrame.write API。根据下面的链接附加?

http://spark.apache.org/docs/latest/sql-programming-guide.html#manually-指定选项

使用"orc"作为格式,使用"append"作为保存模式。示例在上面的链接中。

sudhir问题的答案:-

保存时如何提及数据库名称?

可以在表名称之前提供数据库名称。例如:-如果数据库名称为orc_db,表名称为yahoo_orc_table然后,您可以在表名称之前提到数据库名称,如下所示:-myData.write.format("orc").mode(SaveMode.Append).saveAsTable("orc_db.yahoo_orc_table")

相关内容

  • 没有找到相关文章

最新更新