我正在我的计算机上运行一个查询 HiveContext
查询:
val hiveQuery = s"SELECT post_domain, post_country, post_geo_city, post_geo_region
FROM $database.$table
WHERE year=$year and month=$month and day=$day and hour=$hour and event_event_id='$uniqueIdentifier'"
val hiveQueryObj:DataFrame = hiveContext.sql(hiveQuery)
最初,我从列中提取每个值时使用:
hiveQueryObj.select(column).collectAsList().get(0).get(0).toString
然而,我被告知要避免这样做,因为它使太多的连接Hive。我是这个领域的新手,所以我不知道如何有效地提取列值。如何以更有效的方式执行相同的逻辑?
我计划在我的代码中实现这个
val arr = Array("post_domain", "post_country", "post_geo_city", "post_geo_region")
arr.foreach(column => {
// expected Map
val ex = expected.get(column).get
val actual = hiveQueryObj.select(column).collectAsList().get(0).get(0).toString
assert(actual.equals(ex))
}
暂无答案!
目前还没有任何答案,快来回答吧!