嗨,我在我的配置单元中有2个表,我从第一个表中选择数据创建Dataframe,并将该Dataframe以orc格式保存到另一个表中。我在同一个数据库中创建了这两个表。当我将这个Dataframe保存到第二个表中时,我在数据库问题中找不到表。如果我不使用任何数据库名,那么它总是在配置单元默认数据库中创建和保存我的df。有人能告诉我为什么它不使用用户定义的数据库,而总是使用默认数据库吗?下面是我使用的代码,我也在用hdp。
//creating hive session
val hive = com.hortonworks.spark.sql.hive.llap.HiveWarehouseBuilder.session(sparksession).build()
hive.setDatabase("dbname")
var a= "SELECT 'all columns' from dbname.tablename"
val a1=hive.executeQuery(a)
a1.write
.format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector")
.option("database", "dbname")
.option("table", "table_name")
.mode("Append")
.insertInto("dbname.table_name")
如果我使用insertinto(table\u name),那么它是在默认数据库中保存dataframe,而不是insertinto(dbname.table\u name)。但如果我给dbname.tablename,那么它的显示表在数据库中找不到。我也尝试过同样的使用dbsession。
val dbSession = HiveWarehouseSession.session(sparksession).build()
dbSession.setDatabase("dbname")
注意:我的第二个表(我在其中写入数据的目标表)是一个分区和带扣的表。
1条答案
按热度按时间plicqrtu1#
// 2. 分区依据(…)
}