gpt4 book ai didi

apache-spark - Spark SQL 堆栈溢出

转载 作者:行者123 更新时间:2023-12-03 07:21:48 26 4
gpt4 key购买 nike

我是 Spark 和 Spark sql 的新手,我试图制作 Spark SQL 网站上的示例,只是从 JSON 文件目录加载架构和数据后的一个简单的 SQL 查询,如下所示:

import sqlContext.createSchemaRDD
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val path = "/home/shaza90/Desktop/tweets_1428981780000"
val tweet = sqlContext.jsonFile(path).cache()

tweet.registerTempTable("tweet")
tweet.printSchema() //This one works fine


val texts = sqlContext.sql("SELECT tweet.text FROM tweet").collect().foreach(println)

我遇到的异常(exception)是这个:

java.lang.StackOverflowError

at scala.util.parsing.combinator.Parsers$Parser$$anonfun$append$1.apply(Parsers.scala:254)
at scala.util.parsing.combinator.Parsers$$anon$3.apply(Parsers.scala:222)

更新

我能够执行select * from tweet,但每当我使用列名而不是 * 时,我都会收到错误。

有什么建议吗?

最佳答案

这是SPARK-5009并已在 Apache Spark 1.3.0 中修复。

问题在于,为了识别任何大小写的关键字(例如 SELECT),所有可能的大写/小写组合(例如 seLeCT)都是在递归函数中生成的。如果关键字足够长并且堆栈大小足够小,则此递归将导致您看到的 StackOverflowError 。 (这表明,如果无法升级到 Apache Spark 1.3.0 或更高版本,您可以使用 -Xss 增加 JVM 堆栈大小作为解决方法。)

关于apache-spark - Spark SQL 堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com