PySpark JSON 解析是否发生在 Python 或 JVM 中?



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

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

我正在做很多 JSON 解析,所以这里的性能很重要。

JSON

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

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

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

然后加载您的大型数据集指定模式:

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

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

相关内容

  • 没有找到相关文章

最新更新