apache-spark - 带分区过滤器与完整路径的火花读取镶木地板
问题描述
我在 hdfs 示例中有一个分区镶木地板数据: hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=india/year=2020/month=06/day=30/hour=23/<part-files .镶木地板>
我想了解哪种是读取数据的最佳方式:
df = spark.read.parquet("hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=india/year=2020/month=06/day=30/").where(col('hour ') == "23")
或者
df = spark.read.parquet("hdfs://cluster/stage/data/datawarehouse/table=metrics_data/country=india/year=2020/month=06/day=30/hour=23")
我想更多地了解性能和其他优势(如果有的话)。
解决方案
如果您的目录/文件层次结构很大,那么与过滤相比,直接读取单个目录可能会更快,因为 Spark 需要构建一个索引来应用该过滤器。请参阅以下问答。
推荐阅读
- youtube-dl - youtube-dl 在文件夹加载时冻结(?)
- javascript - 根据数据值通过 JavaScript 显示/隐藏 div
- javascript - ArrayLib 未定义
- go - Go CORS 发出无响应
- java - 为什么我没有 NotSerializableException?
- javascript - 反应功能组件中的打字稿道具歧视
- python - 如何在 Pysimplegui 中使用单个滚动条控制四个列表框
- python - 创建虚拟环境时遗漏了 bin 和 lib64 文件?
- sql-server - Backup\Restore cmd 将数据库从远程服务器复制到桌面
- php - 作曲家下载 mpdf 时的问题