我尝试在启用光子的情况下使用databricks spark读取S3中的json文件目录。json目录的大小约为100 - 120 GB
df = (spark
.read
.option("multiline", True)
.json(json_dir_path)
.schema(json_schema)
)
df.write.format('delta').saveAsTable("table_name")
字符串
这会抛出一个错误:
Caused by: org.apache.spark.memory.SparkOutOfMemoryError: Photon ran out of memory while executing this query.
Photon failed to reserve 1728.0 MiB for simdjson internal usage, in SimdJsonReader, in JsonFileScanNode(id=3618, output_schema=[string, string, array<struct<string, string, string, string>>, string, string, ... 1 more]), in task.
型
然而,这在光子未启用时有效。使用光子处理数据砖中的大型json文件时,需要指定什么配置吗?
2条答案
按热度按时间bzzcjhmw1#
我们最近在启用Photon的集群配置中遇到了一个问题。我们也开始耗尽内存。我们通过添加更多内存并减少执行器数量来“修复”它,因此每个执行器都有更多的可用内存。但回想起来,对于特定的工作流,最好是关闭Photon。
atmip9wb2#
我们遇到了类似的情况,一个SQL查询6周前在XL无服务器仓库上运行良好,但现在即使在3XL或4XL无服务器仓库上也无法运行,尽管表大小增加了微不足道(从3.2 TB增加到3.3 TB)。错误(大约30秒后)是:
字符串
最后,我们使用一个较小的集群(没有Photon)(集群大小大约等于XL无服务器仓库)来运行查询。然而,由于这是一个直接的SQL查询,我们更希望在无服务器仓库上运行,这样我们可以更好地访问更高性能的计算(和更好的日志记录)。