我有这个json字符串:
{
"startDate" : "2014-12-17T14:31:40Z",
"name" : "Izek",
"age" : 12
}
Run Code Online (Sandbox Code Playgroud)
当我用杰克逊转换它Map[String, Object]的类型startDate是String我怎么能告诉杰克逊把它转换成DateTime类型?
在运行 Spark 作业时,我遇到 OOM 异常,查看堆栈跟踪我发现physicalPlanDescription太大:
它是在这里创建的:(org.apache.spark.sql.execution.QueryExecution 行:206)
private def completeString(appendStats: Boolean): String = {
...
...
s"""== Parsed Logical Plan ==
|${stringOrError(logical.treeString(verbose = true))}
|== Analyzed Logical Plan ==
|$analyzedPlan
|== Optimized Logical Plan ==
|${stringOrError(optimizedPlanString)}
|== Physical Plan ==
|${stringOrError(executedPlan.treeString(verbose = true))}
""".stripMargin.trim
}
Run Code Online (Sandbox Code Playgroud)
它是根据代码中的注释为 UI 创建的。
1)我能做什么?已经使用具有 20G 堆的驱动程序。
2)为什么这个字符串不是惰性的?为什么要总是计算它?
我还打开问题:Apache Spark
根据要求示例代码:链接
运行与-XX:+UseG1GC
需要明确的是,这段代码创建了一个非常大的计划,我的实际代码要复杂得多,许多表相互连接,进行过滤和许多case when语句。因此,请不要坚持这个示例代码实际上什么也没做的事实。
我想将DataFrame.queryExecution.optimizedPlan保存为一些持久性,然后重用它在其他spark应用程序中创建新的DataSet:使用此API:
org.apache.spark.sql.Dataset.ofRows(sparkSession, logicalPlan)
Run Code Online (Sandbox Code Playgroud)
能做到吗 怎么样?
运行以下代码时,我预计会出现异常,但我None却得到了异常。这是预期的吗?
import org.json4s.jackson.JsonMethods
import org.json4s.{DefaultFormats, Formats}
implicit val f: Formats = DefaultFormats
val json ="{ \"a\" : { \"c\": 1 }}"
case class Foo(a: Option[String])
val foo = JsonMethods.parse(json).extract[Foo]
println(foo)
> Foo(None)
Run Code Online (Sandbox Code Playgroud)
还有那个代码:
import org.json4s.jackson.JsonMethods
import org.json4s.{DefaultFormats, Formats}
implicit val f: Formats = DefaultFormats
val json ="{ \"a\" : { \"c\": 1 }}"
case class Foo(a: String = "")
val foo = JsonMethods.parse(json).extract[Foo]
println(foo)
> Foo()
Run Code Online (Sandbox Code Playgroud)