sco*_*pio 4 partitioning apache-spark parquet apache-spark-sql
我有一个大约 1 GB 的镶木地板文件。每个数据记录都是来自 IOT 设备的读数,它捕获设备在过去一分钟内消耗的能量。架构:houseId、deviceId、energy 镶木地板文件根据houseId 和deviceId 进行分区。一个文件只包含过去 24 小时的数据。
我想使用 Spark SQL 对驻留在此镶木地板文件中的数据执行一些查询示例查询找出给定房屋在过去 24 小时内每台设备消耗的平均能源。
Dataset<Row> df4 = ss.read().parquet("/readings.parquet");
df4.as(encoder).registerTempTable("deviceReadings");
ss.sql("Select avg(energy) from deviceReadings where houseId=3123).show();
Run Code Online (Sandbox Code Playgroud)
上面的代码运行良好。我想了解 spark 如何执行此查询。
Spark 是否在不查看查询的情况下从 HDFS 读取内存中的整个 Parquet 文件?
它不应该扫描所有数据文件,但通常可以访问所有文件的元数据。
Spark 是否仅根据查询从 HDFS 加载所需的分区?
是的,它确实。
Spark 是否仅根据查询从 HDFS 加载所需的分区?
它不是。每个查询都有自己的执行计划。
如果我在上面缓存 df4 数据帧,执行时间会有所不同吗?
是的,至少现在,它会有所作为 -在保留分区的同时缓存数据帧
| 归档时间: |
|
| 查看次数: |
1383 次 |
| 最近记录: |