Lis*_*isa 11 apache-spark apache-spark-sql
我是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)
Run Code Online (Sandbox Code Playgroud)
我得到的例外就是这个:
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)
Run Code Online (Sandbox Code Playgroud)
更新
我能够执行,select * from tweet但每当我使用列名而不是*我得到错误.
任何建议?
Dan*_*bos 10
这是SPARK-5009,已在Apache Spark 1.3.0中修复.
问题是,在SELECT任何情况下识别关键字(如),所有可能的大写/小写组合(如seLeCT)都是在递归函数中生成的.StackOverflowError如果关键字足够长并且堆栈大小足够小,那么这种递归将导致您看到.(这表明如果不能选择升级到Apache Spark 1.3.0或更高版本,则可以使用-Xss增加JVM堆栈大小作为解决方法.)
| 归档时间: |
|
| 查看次数: |
2793 次 |
| 最近记录: |