gpt4 book ai didi

apache-spark - 如何使用 Spark 对象获取 Hive 表的位置值?

转载 作者:行者123 更新时间:2023-12-03 13:48:18 30 4
gpt4 key购买 nike

我有兴趣能够检索 地点 给定 Spark 对象 (SparkSession) 的 Hive 表的值。获取此值的一种方法是通过以下 SQL 查询解析位置的输出:

describe formatted <table name>

我想知道是否有其他方法可以获得 地点 值而无需解析输出。如果上述命令的输出在 Hive 版本之间发生变化,API 会很棒。如果需要外部依赖,它会是哪个?是否有一些可以获取位置值的示例 Spark 代码?

最佳答案

您也可以使用 .toDF 方法在 desc formatted table然后从数据框中过滤。

DataframeAPI:

scala> :paste
spark.sql("desc formatted data_db.part_table")
.toDF //convert to dataframe will have 3 columns col_name,data_type,comment
.filter('col_name === "Location") //filter on colname
.collect()(0)(1)
.toString

Result:
String = hdfs://nn:8020/location/part_table

(or)



RDD Api:
scala> :paste
spark.sql("desc formatted data_db.part_table")
.collect()
.filter(r => r(0).equals("Location")) //filter on r(0) value
.map(r => r(1)) //get only the location
.mkString //convert as string
.split("8020")(1) //change the split based on your namenode port..etc

Result:
String = /location/part_table

关于apache-spark - 如何使用 Spark 对象获取 Hive 表的位置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54060596/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com