我正在尝试使用spark识别配置单元表中的分区列名。我可以使用show partitions然后解析resultset来提取分区列。但是,缺点是,如果某些故事中没有分区,show分区失败了。有没有更有机的方法来标识配置单元表中的分区列名。任何帮助都将不胜感激
v_query="show partitions {}".format(table_name)
a=self.spark.sql(v_query)
val=a.rdd.map(list).first()
val1=''.join(val)
partition_list=[l.split('=')[0] for l in val1.split('/')]
1条答案
按热度按时间9gm1akwq1#
如果表未分区,上述代码将失败。它会给你一个错误信息,如
"pyspark.sql.utils.AnalysisException: u'SHOW PARTITIONS is not allowed on a table that is not partitioned"
您可以在上使用Map操作desc
命令获取分区列信息。