PySpark JSON解析是在Python还是JVM中进行的?

时间:2017-01-03 06:05:27

标签: python apache-spark pyspark apache-spark-sql pyspark-sql

sqlContext.read.json("...path.to.file...")

我正在使用pyspark在Python中编写Spark脚本。 JSON解析是在Python中还是在JVM上进行?如果是Python,它是使用C simplejson扩展,还是原生Python?

我正在做一个很多的JSON解析,因此这里的性能非常重要。

2 个答案:

答案 0 :(得分:2)

JSON解析在JVM中完成,并且将jsons加载到文件是最快的。

但是如果你没有指定架构到read.json,那么spark将探测所有输入文件以找到jsons的“超集”架构。因此,如果性能很重要,首先使用示例文档创建小型json文件,然后从中收集模式:

schema = sqlContext.read.json("/path/to/small/file.json").schema

然后加载大型数据集specyfying schema:

 df = sqlContext.read.json("/path/to/big/dataset", schema=schema)

答案 1 :(得分:0)

当您执行sqlContext.read.json时,会在后台将其转换为由scala代码计算的表达式。这意味着json解析将由JVM完成。