我在hdfs中有一个分区Parquet地板数据示例:hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=印度/year=2020/month=06/day=30/hour=23/
我想了解阅读数据的最佳方式:
df=Spark.阅读.Parquet地板(“hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=印度/年=2020/月=06/天=30/“),其中(col('小时')=”23“)
或
df=Spark.阅读.Parquet地板(“hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=印度/年=2020/月=06/天=30/小时=23“)
我想了解更多的性能和其他优势,如果有的话。
2条答案
按热度按时间628mspwn1#
这很简单,我们在读取文件时要做的第一件事就是使用
df = df.filter()
这将过滤下来的数据,甚至在读取到内存,先进的文件格式,如Parquet,orc支持的概念预测下推更多,这使您读取数据的方式更快,加载完整的数据。w6mmgewl2#
如果你有一个大的目录/文件层次结构,直接读取单个目录可能比过滤更快,因为spark需要建立一个索引来应用这个过滤器。请看下面的问题和答案。