簡體   English   中英

Spark SQL Stackoverflow

[英]Spark SQL Stackoverflow

我是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) 

我得到的例外就是這個:

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執行select * from tweet但每當我使用列名而不是*時,我都會收到錯誤。

任何建議?

這是SPARK-5009 ,已在Apache Spark 1.3.0中修復。

問題是,在任何情況下識別關鍵字(如SELECT ),所有可能的大寫/小寫組合(如seLeCT )都是在遞歸函數中生成的。 如果關鍵字足夠長並且堆棧大小足夠小,則此遞歸將導致您看到的StackOverflowError (這表明如果不能升級到Apache Spark 1.3.0或更高版本,則可以使用-Xss來增加JVM堆棧大小作為解決方法。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM