我感兴趣的是能够检索给定spark对象(sparksession)的配置单元表的位置值。获取此值的一种方法是通过以下sql查询解析位置的输出:
describe formatted <table name>
我想知道是否有其他方法可以获得位置值而不必解析输出。如果上述命令的输出在配置单元版本之间发生变化,那么api将非常有用。如果需要外部依赖,会是哪一种?是否有一些示例Spark代码可以获得位置值?
我感兴趣的是能够检索给定spark对象(sparksession)的配置单元表的位置值。获取此值的一种方法是通过以下sql查询解析位置的输出:
describe formatted <table name>
我想知道是否有其他方法可以获得位置值而不必解析输出。如果上述命令的输出在配置单元版本之间发生变化,那么api将非常有用。如果需要外部依赖,会是哪一种?是否有一些示例Spark代码可以获得位置值?
6条答案
按热度按时间r7s23pms1#
你也可以使用
.toDF
上的方法desc formatted table
然后从Dataframe过滤。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
zd287kbt2#
在scala项目中将此函数用作可重用函数
打电话的人是
结果(我在下面的local so file:/中执行,如果它的hdfs hdfs://将出现):
cidc1ykv3#
以下是正确答案:
kse8i1jr4#
第一种方法
你可以用
input_file_name
使用Dataframe。它将为您提供零件文件的绝对文件路径。
然后从中提取表路径。
第二种方法
你可以说更多的是黑客。
nxagd54h5#
以下是如何在pyspark中执行此操作:
wkyowqbh6#
使用externalcatalog