2017-06-11 1 views
0

Die Zählung() auf einem Datenrahmen von IBM Blue geladen Objektspeicher mischen der folgenden Ausnahme auslöst, wenn InferSchema aktiviert ist:Zählung wirft java.lang.NumberFormatException: null auf die Datei aus Objektspeicher geladen mit InferSchema aktiviert

Name: org.apache.spark.SparkException 
Message: Job aborted due to stage failure: Task 3 in stage 43.0 failed 10 times, most recent failure: Lost task 3.9 in stage 43.0 (TID 166, yp-spark-dal09-env5-0034): java.lang.NumberFormatException: null 
    at java.lang.Integer.parseInt(Integer.java:554) 
    at java.lang.Integer.parseInt(Integer.java:627) 
    at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:272) 
    at scala.collection.immutable.StringOps.toInt(StringOps.scala:29) 
    at org.apache.spark.sql.execution.datasources.csv.CSVTypeCast$.castTo(CSVInferSchema.scala:241) 
    at org.apache.spark.sql.execution.datasources.csv.CSVRelation$$anonfun$csvParser$3.apply(CSVRelation.scala:116) 
    at org.apache.spark.sql.execution.datasources.csv.CSVRelation$$anonfun$csvParser$3.apply(CSVRelation.scala:85) 
    at org.apache.spark.sql.execution.datasources.csv.CSVFileFormat$$anonfun$buildReader$1$$anonfun$apply$2.apply(CSVFileFormat.scala:128) 
    at org.apache.spark.sql.execution.datasources.csv.CSVFileFormat$$anonfun$buildReader$1$$anonfun$apply$2.apply(CSVFileFormat.scala:127) 
    at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434) 
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440) 
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408) 
    at org.apache.spark.sql.execution.datasources.FileScanRDD$$anon$1.hasNext(FileScanRDD.scala:91) 

Ich erhalte die obige Ausnahme nicht, wenn ich das inferSchema deaktiviere. Warum bekomme ich diese Ausnahme? Wie viele Zeilen werden standardmäßig von Databricks gelesen, wenn inferSchema aktiviert ist?

+0

Welche Version von Spark csv verwenden Sie? – eliasah

+0

Spark-CSV-Version ist 1.5 – Garipaso

+0

und was ist mit Funken? – eliasah

Antwort

2

Dies war ein Problem mit dem spark-csv-Paket (null value still not correctly parsed #192), das in spark 2.0 gezogen wurde. Es wurde korrigiert und in spark 2.1 geschoben.

Hier ist die zugehörige PR: [SPARK-18269][SQL] CSV datasource should read null properly when schema is lager than parsed tokens.

Da Sie bereits mit spark 2.0 arbeiten, können Sie problemlos auf 2.1 upgraden und das spark-csv Paket löschen. Es wird sowieso nicht benötigt.

+0

Danke, gibt es dafür eine Arbeit auf 2.0? – Garipaso

+0

Ich habe eine andere Frage, tatsächlich funktionierte die oben genannte Last als Stand-alone ohne Probleme, mit dem gleichen Befehl von mit in meiner Anwendung mit der obigen Ausnahme fehlgeschlagen. Was könnte der Grund sein? All das ist auf Funken 2.0. – Garipaso

+0

Nicht wahrscheinlich. Es wurde in Funke 2.1 verschmelzen und das Arbeiten kann ein bisschen schmerzhaft sein. (Dirty-Lösung lesen als Text und Map (Parsen) dann in ein DF konvertieren) – eliasah

Verwandte Themen