spark很懒吧?那么做load()
什么呢?
start = timeit.default_timer()
df = sqlContext.read.option(
"es.resource", indexes
).format("org.elasticsearch.spark.sql")
end = timeit.default_timer()
print('without load: ', end - start) # almost instant
start = timeit.default_timer()
df = df.load()
end = timeit.default_timer()
print('load: ', end - start) # takes 1sec
start = timeit.default_timer()
df.show()
end = timeit.default_timer()
print('show: ', end - start) # takes 4 sec
如果show()
是唯一的动作,我想load
不会像 1 秒那样花费太多时间。所以我的结论load()
是一个动作(而不是火花的转变)
load 是否实际上将整个数据加载到内存中?我不这么认为,但它有什么作用呢?
我已经搜索并查看了文档https://spark.apache.org/docs/latest/sql-data-sources-load-save-functions.html但它没有帮助..