sqlContext.read.json("...path.to.file...")
我正在使用pyspark在Python中编写Spark脚本。 JSON解析是在Python中还是在JVM上进行?如果是Python,它是使用C simplejson扩展,还是原生Python?
我正在做一个很多的JSON解析,因此这里的性能非常重要。
答案 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完成。