使用Spark 1.6.2,从普通文件系统中读取gzip压缩的JSON文件:
val df = sqlContext
.read
.json("file:///data/blablacar/transactions.json.gz")
.count()
将对单个工作人员使用单个任务。
但是如果我保存文件:
sc.textFile("file:///data/blablacar/transactions.json.gz")
.saveAsTextFile("file:///user/blablacar/transactions")
sqlContext.read.json("file:///user/blablacar/transactions")
.count()
将在单个任务上执行第一个作业,但是对几个任务执行JSON解码(这很好!)。
为什么Spark没有在内存中解压缩文件并在第一种情况下在几个任务中分发JSON解码?
答案 0 :(得分:2)
为什么Spark没有在内存中解压缩文件并在第一种情况下在几个任务中分发JSON解码?
因为gzip压缩不可拆分,所以文件必须作为一个整体加载到一台机器上。如果你想要并行读取:
答案 1 :(得分:0)