【发布时间】:2016-06-02 14:38:52
【问题描述】:
我能够使用 HiveContext 将数据从我的 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()
但是,这种方法是在仓库中为每个插入创建一个单独的文件,如下所示
part-00000
part-00000_copy_1
part-00000_copy_2
part-00000_copy_3
有什么方法可以避免这种情况,只需将新数据附加到单个文件中,还是有其他更好的方法可以将数据从 spark 插入到 hive 中?
【问题讨论】:
-
你解决了这个问题了吗?我做了一些研究,但没有运气!
标签: scala hadoop apache-spark hive apache-spark-sql