使用Hive Metadata -pyspark读取HDFS文件



我是Pyspark的新手,并尝试读取HDFS文件(在其顶部创建了Hive Tables)并创建Pyspark DataFrames。通过Pyspark阅读蜂巢桌很耗时。有什么方法可以动态地获取Hive列名称(在DataFrame中用作架构)?

我希望将文件位置,表名和数据库名称作为输入传递给AA程序/函数,以从Hive Metadata(可能是元数据XML)获取架构/列名,并返回为DataFrame。

请建议

您可以通过调用dataframe.column

获得列名的列表
df1 = spark.sql('select * from bla')
df1.columns
['col1', 'col2']

printschema方法将为您提供帮助,以防您需要列类型

df1.printSchema()
root 
|-- col1: long (nullable = true) 
|-- col2: long (nullable = true) 

这两种方法均未读取除架构以外的表。当您试图提高性能时,您可以尝试的另一件事是以镶木格式存储表。您可以使用以下命令来执行此操作:

df1.write.mode("overwrite").saveAsTable("blaASParquet")

Parquet是基于列的存储,这对于大多数聚合方法都是有益的。

相关内容

  • 没有找到相关文章

最新更新