我创建了带有 100 个字段 +- 的 scala case 类,当我尝试构建项目(使用 gradle)时,出现错误:
Cause: java.lang.StackOverflowError
at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
Run Code Online (Sandbox Code Playgroud)
我正在使用 scala 2.11 ,发现过去有 22 个字段的限制。但它是固定的。
那么为什么构建失败呢?(我试图增加 -Xss20m ,但没有帮助)
我正在使用 spark 2.4.1 和 scala,并尝试将 DF 写入 csv 文件。似乎在空值的情况下,csv 包含“”。是否可以删除那些空引号?
val data = Seq(
Row(1, "a"),
Row(5, "z"),
Row(5, null)
)
val schema = StructType(
List(
StructField("num", IntegerType, true),
StructField("letter", StringType, true)
)
)
var df = spark.createDataFrame(
spark.sparkContext.parallelize(data),
schema
)
df.write.csv("location/")
Run Code Online (Sandbox Code Playgroud)
输出看起来像:
1,a
5,z
5,""
Run Code Online (Sandbox Code Playgroud)
我希望它将是:
1,a
5,z
5,
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
谢谢!