scala - Hive 与 Parquet 文件上的 Spark 数据集
问题描述
我有 2 个相同数据的实例。
- 以 parquet 格式名为 myData 的 Hive 表
- Parquet 格式的 Parquet 文件(不由 Hive 管理)
考虑以下代码:
val myCoolDataSet = spark
.sql("select * from myData")
.select("col1", "col2")
.as[MyDataSet]
.filter(x => x.col1 == "Dummy")
和这个:
val myCoolDataSet = spark
.read
.parquet("path_to_file")
.select("col1", "col2")
.as[MyDataSet]
.filter(x => x.col1 == "Dummy")
我的问题是在性能和扫描数据量方面哪个更好?spark如何为两种不同的方法计算它?
解决方案
Hive 用作有关 Parquet 文件的元数据的存储。Spark 可以利用其中包含的信息来执行有趣的优化。由于后备存储是相同的,您可能不会看到太大的差异,但基于 Hive 中的元数据的优化可以提供优势。
推荐阅读
- html - Phoegap/Cordova 在 AJAX GET 之后加载特定的 DB 行
- angular - 如何使用角度循环引导模式?
- azure - 无法在 Azure 机器学习服务工作区中注册 ONNX 模型
- python - 我不知道我的编码有什么问题,即使我输入整数而不是浮点数,它也会跳到 else 语句
- php - php文件上传检查文件是否为图像
- node.js - kubernetes 集群中的应用程序 nodejs 不会继续运行 - CrashLoopBackOff
- r - 使用 STL() 分解 xts 时间序列
- php - 通过自动分页符在不同页面上设置 TCPDF 边距
- wix - DropOnUninstall 不在 SqlDatabase 标记中删除数据库
- java - Apache Beam:无法通过 docker-compose 访问 Pub/Sub Emulator