【发布时间】:2015-06-30 11:25:02
【问题描述】:
我正在加载高维拼花文件,但只需要几列。我当前的代码如下所示:
dat = sqc.parquetFile(path) \
.filter(lambda r: len(r.a)>0) \
.map(lambda r: (r.a, r.b, r.c))
我对正在发生的事情的心理模型是加载所有数据,然后丢弃我不想要的列。我显然更喜欢它甚至不阅读那些专栏,并且根据我对镶木地板的理解,这似乎是可能的。
所以有两个问题:
- 我的心智模型错了吗?还是 spark 编译器足够聪明,只能读取上面示例中的 a、b 和 c 列?
- 如何强制
sqc.parquetFile()更有效地读取数据?
【问题讨论】:
-
我认为如果您
map之前filter,您获得只读所需列的机会会更高
标签: apache-spark apache-spark-sql pyspark parquet