약 5000 개의 행과 950 개의 열이있는 csv 파일이 있습니다. 우선은 DataFrame에로드 :Apache Spark : 문자열 열 인덱싱을 시도 할 때 StackOverflowError가 발생합니다.
val data = sqlContext.read
.format(csvFormat)
.option("header", "true")
.option("inferSchema", "true")
.load(file)
.cache()
을 그 후 나는 그들에게 모든 문자열 열
val featuresToIndex = data.schema
.filter(_.dataType == StringType)
.map(field => field.name)
검색 및 인덱싱 할. 이를 위해 나는 각 문자열 열
val stringIndexers = featuresToIndex.map(colName =>
new StringIndexer()
.setInputCol(colName)
.setOutputCol(colName + "Indexed"))
에 대한 인덱서를 작성하고 파이프 라인
val pipeline = new Pipeline().setStages(stringIndexers.toArray)
를 생성하지만이 파이프 라인
val indexedDf = pipeline.fit(data).transform(data)
내 초기 dataframe을 변환 할 때 나는 StackOverflowError가
수16/07/05 16:55:12 INFO DAGScheduler: Job 4 finished: countByValue at StringIndexer.scala:86, took 7.882774 s
Exception in thread "main" java.lang.StackOverflowError
at scala.collection.immutable.Set$Set1.contains(Set.scala:84)
at scala.collection.immutable.Set$Set1.$plus(Set.scala:86)
at scala.collection.immutable.Set$Set1.$plus(Set.scala:81)
at scala.collection.mutable.SetBuilder.$plus$eq(SetBuilder.scala:22)
at scala.collection.mutable.SetBuilder.$plus$eq(SetBuilder.scala:20)
at scala.collection.generic.Growable$class.loop$1(Growable.scala:53)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:57)
at scala.collection.mutable.SetBuilder.$plus$plus$eq(SetBuilder.scala:20)
at scala.collection.TraversableLike$class.to(TraversableLike.scala:590)
at scala.collection.AbstractTraversable.to(Traversable.scala:104)
at scala.collection.TraversableOnce$class.toSet(TraversableOnce.scala:304)
at scala.collection.AbstractTraversable.toSet(Traversable.scala:104)
at org.apache.spark.sql.catalyst.trees.TreeNode.containsChild$lzycompute(TreeNode.scala:86)
at org.apache.spark.sql.catalyst.trees.TreeNode.containsChild(TreeNode.scala:86)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$4.apply(TreeNode.scala:280)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
...
내가 뭘 잘못하고 있니? 감사합니다. .
전체 예외 추적을 제공 할 수 있습니까? – sebszyller
어떤 버전의 JDK를 사용하고 있습니까? –
jdk 1.8.0_60 및 1.8.0_101을 시도했습니다. 전체 추적 http://pastebin.com/g9MsNtDp – Evilnef