首页 > 解决方案 > 使用 databricks-connect 运行 Scala 模块

问题描述

我已尝试按照此处的说明设置与 IntelliJ 的数据块连接。我的理解是我可以从 IDE 运行代码,它将在 databricks 集群上运行。

我从 miniconda 环境中添加了 jar 目录,并将其移动到所有 maven 依赖项之上File -> Project Structure...

但是,我认为我做错了什么。当我尝试运行我的模块时,出现以下错误:

21/07/17 22:44:24 ERROR SparkContext: Error initializing SparkContext.
java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
    at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:221)
    at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:201)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:413)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:262)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:291)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:495)
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2834)
    at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:1016)
    at scala.Option.getOrElse(Option.scala:189)
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:1010)
    at com.*.sitecomStreaming.sitecomStreaming$.main(sitecomStreaming.scala:184)
    at com.*.sitecomStreaming.sitecomStreaming.main(sitecomStreaming.scala)

259 GB 的系统内存让我觉得它试图在我的笔记本电脑而不是 dbx 集群上本地运行?我不确定这是否正确以及我能做些什么来让它正常运行......

任何帮助表示赞赏!

标签: scalaapache-sparkintellij-ideadatabricksdatabricks-connect

解决方案


databricks-connect 中的驱动程序始终在本地运行 - 只有执行程序在云中运行。此外,此报告的内存以字节为单位,因此259522560~256Mb - 您可以使用它报告的选项来增加它。

PS 但是,如果您使用的是结构化流,那么是的 - 这是databricks-connect 的一个已知限制


推荐阅读