SPARK 1.6插入现有的Hive表(未分区)

时间:2016-11-12 14:44:12

标签: apache-spark hive

鉴于我可以从下面的单个插入语句中获取另一个堆栈溢出问题(谢谢),那么

  val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
  sqlContext.sql("CREATE TABLE IF NOT EXISTS e360_models.employee(id INT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'")

   sqlContext.sql("insert into table e360_models.employee select t.* from (select 1210, 'rahul', 55) t")
   sqlContext.sql("insert into table e360_models.employee select t.* from (select 1211, 'sriram pv', 35) t")
   sqlContext.sql("insert into table e360_models.employee select t.* from (select 1212, 'gowri', 59) t")

   val result = sqlContext.sql("FROM e360_models.employee SELECT id, name, age")
   result.show()

如果想要从已注册为临时表的SPARK DF中选择插入选项到现有的Hive表怎么办?我似乎无法让它发挥作用。它实际上可能吗?

使用1.6 SPARK。没有兴趣创建一个CTAS表,而是按照上面的方式插入,但是批量,例如。

sqlContext.sql("INSERT INTO TABLE default.ged_555 SELECT t.* FROM mytempTable t")

1 个答案:

答案 0 :(得分:2)

  

据我所知,你想要插入一些数据    UserType = m.UserId == 0 ? UserType="UnKnown" :"Documents Scanned", ,然后您想要选择一些列和   再次插入 e360_models.employee ,您也不想进行CTAS   从 default.ged_555 准备一个数据框,然后执行以下操作

e360_models.employee