Мне удалось вставить данные в таблицу Hive из моего искрового кода, используя HiveContext, как показано ниже.
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
Есть ли способ избежать этого и просто добавить новые данные в один файл или есть другой лучший способ вставить данные в куст из искры?