Apache spark 查询拼花文件嵌套列扫描整个列,即使对记录应用了谓词下推
我在玩拼花地板。 我有事件的拼花文件,每个都由时间戳、主题和标记组成。 文件按主题排序,然后按时间戳排序。 我运行的查询可以描述为:Apache spark 查询拼花文件嵌套列扫描整个列,即使对记录应用了谓词下推,apache-spark,hive,nested,parquet,presto,Apache Spark,Hive,Nested,Parquet,Presto,我在玩拼花地板。 我有事件的拼花文件,每个都由时间戳、主题和标记组成。 文件按主题排序,然后按时间戳排序。 我运行的查询可以描述为: select topic from T where topic = 404; 它运行得非常快,返回的行非常少。它的运行速度比: select topic from T; 当我将其更改为类似以下内容时: select tags from T where topic = 404; 它跑得和跑步一样慢 select tags from T; 在分析计划时,使用s
select topic from T where topic = 404;
它运行得非常快,返回的行非常少。它的运行速度比:
select topic from T;
当我将其更改为类似以下内容时:
select tags from T where topic = 404;
它跑得和跑步一样慢
select tags from T;
在分析计划时,使用spark时,似乎应用了谓词push-down,但从性能来看,我可以假设它不适用于标记列
我用蜂箱、火花和普雷斯托进行了测试。
对于它或者任何其他技术,有什么办法可以更好地处理镶木地板嵌套阵列吗
spark中的执行计划:
==实际计划==
*项目[tags4]
+-*过滤器不为NullTopic3L&&topic3L=404
+-*FileScan拼花[topic3L,tags4]成批:错误,格式:
拼花地板,位置:InMemoryFileIndex[文件:/example路径],
分区筛选器:[],PushedFilters:[IsNotNulltopic,
equaltopic,404],ReadSchema:struct>
谢谢,
Roee这是一个Spark问题,记录在中。请共享执行计划。您好,共享了从T中选择标记的查询的执行计划,其中topic=404。解决这个问题谢谢,但这不是同一个问题。1.SPARK-17636显示谓词中涉及的嵌套字段不会触发下推。我的经验是,即使其他字段触发下推,嵌套字段也会被完全扫描。2.这一个仅限于spark,尽管spark/hive/presto的问题发生在我身上。因此,如果有一个问题是与拼花地板先生本身。