2017-10-06 27 views
0

spark 1.6不会触发sqlContext.read.json动作吗?如何避免使用json格式记录读取序列文件

  1. 读取的输入序列文件
  2. sqlcontext.read.json()来转换成数据帧从数据帧和缓存以上
  3. 选择子集的数据。

我面临的问题是,当火花到达第2步时,它似乎触发了操作,因此读取输入数据并创建数据帧。

但是当我到达第3步,因为它实现了一个缓存触发动作来实现DF,它再次读取输入数据,因此浪费了两次读输入数据的时间。

我不想缓存输入数据。

如何避免两次读取输入数据?

回答

0

一种替代方法是在sqlcontext.read.json()之后保存读取的数据帧并读回,然后为后续进程执行缓存。

你可以做dataframe checkpointing或将它保存到HDFS来实现。

这将消除输入序列文件的多次读取