PySpark JSON 解析发生在 Python 还是 JVM 中?
Does PySpark JSON parsing happen in Python or JVM?
sqlContext.read.json("...path.to.file...")
我正在 Python 使用 pyspark 编写 Spark 脚本。 JSON 解析发生在 Python 中还是在 JVM 上?如果 Python,它是使用 C simplejson 扩展,还是原生 Python?
我正在进行 lot 的 JSON 解析,因此这里的性能很重要。
当您执行 sqlContext.read.json 时,这会在幕后转换为由 Scala 代码计算的表达式。这意味着 json 解析将由 JVM 完成。
JSON解析在JVM中完成,最快加载jsons到文件。
但是如果您没有为 read.json
指定架构,则 spark 将探测所有输入文件以查找 json 的 "superset" 架构。因此,如果性能很重要,请先创建包含示例文档的小 json 文件,然后从中收集架构:
schema = sqlContext.read.json("/path/to/small/file.json").schema
然后加载您的大数据集指定模式:
df = sqlContext.read.json("/path/to/big/dataset", schema=schema)
sqlContext.read.json("...path.to.file...")
我正在 Python 使用 pyspark 编写 Spark 脚本。 JSON 解析发生在 Python 中还是在 JVM 上?如果 Python,它是使用 C simplejson 扩展,还是原生 Python?
我正在进行 lot 的 JSON 解析,因此这里的性能很重要。
当您执行 sqlContext.read.json 时,这会在幕后转换为由 Scala 代码计算的表达式。这意味着 json 解析将由 JVM 完成。
JSON解析在JVM中完成,最快加载jsons到文件。
但是如果您没有为 read.json
指定架构,则 spark 将探测所有输入文件以查找 json 的 "superset" 架构。因此,如果性能很重要,请先创建包含示例文档的小 json 文件,然后从中收集架构:
schema = sqlContext.read.json("/path/to/small/file.json").schema
然后加载您的大数据集指定模式:
df = sqlContext.read.json("/path/to/big/dataset", schema=schema)