我试图通过在 Scala 程序中创建列数超过 200 的 RDD 来创建 Spark SQL 表。当我将架构创建为以下内容时,编译(sbt 编译)失败并出现 java.lang.StackOverflowError 异常:
StructField("RT", StringType,nullable = true) ::
StructField("SERIALNO", StringType,nullable = true) ::
StructField("SPORDER", StringType,nullable = true) ::
// ... remaining 200+ columns
Run Code Online (Sandbox Code Playgroud)
无法粘贴堆栈跟踪,因为它超过 1.5k 行将
列数减少到大约 100-120 编译成功。另外,当我使用架构字符串创建架构(拆分架构字符串,然后创建它的映射)时,编译成功(https://spark.apache.org/docs/1.3中标题“以编程方式指定架构”下的第一个示例。 0/sql-programming-guide.html)。
手动指定导致异常的模式似乎有什么问题?