Ich möchte eine CSV-Datei mit Spark lesen und die Spalten mit passenden Typen zuordnen.(Scala) Konvertieren Zeichenfolge in Apache Spark
val conf = new SparkConf()
.setMaster("local[8]")
.setAppName("Name")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val customSchema = StructType(Array(
StructField("date", DateType, true),
StructField("time",StringType, true),
StructField("am", DoubleType, true),
StructField("hum", DoubleType, true),
StructField("temp", DoubleType, true)
))
val df = sqlContext.read
.format("org.apache.spark.sql.execution.datasources.csv.CSVFileFormat")
.option("header","true")
.option("delimiter",";")
.schema(customSchema)
.load("data.csv")
Eine Zeile der CSV-I sieht lese wie diese
+----------+--------+-----+-----+-----+
| date| time| am| hum| temp|
+----------+--------+-----+-----+-----+
|04.10.2016|12:51:20|1.121|0.149|0.462|
+----------+--------+-----+-----+-----+
Funken die CSV-lesen und die Typen richtig zuordnen, wenn ich den Typen für das Datum String gesetzt. Wenn ich die customSchema wie in dem Code halte oben gezeigt, Spark eine Ausnahme aufgrund des falschen Datumsformates (DateType will expect YYYY-MM-DD while mine is DD.MM.YYYY).
Gibt es eine Möglichkeit umformatieren das Datum Strings zu YYYY-MM-DD werfen und das Schema gelten danach ? Oder kann ich den von Spark angegebenen DateType auch durch Hinzufügen von Parametern ändern?
Vielen Dank im Voraus
Danke, das hat funktioniert. Können Sie mir sagen, ob es eine Liste mit verfügbaren Optionen für den DataFrameReader gibt? Ich konnte noch keinen finden. –
https://github.com/databricks/spark-csv#features –