如何有效地从hivecontext查询中提取值

lnlaulya  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(225)

我正在我的计算机上运行一个查询 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))
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题