Sparkで.csvファイルを読み込み、フィッティングタイプに列を関連づけたいと思います。(Scala)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")
.CSVのラインは私が.CSVを読んで、私は文字列に日付のタイプを設定している場合、正しくタイプを関連付けます。この
+----------+--------+-----+-----+-----+
| date| time| am| hum| temp|
+----------+--------+-----+-----+-----+
|04.10.2016|12:51:20|1.121|0.149|0.462|
+----------+--------+-----+-----+-----+
スパークのようなルックスを読んでいます。上記のコードのようにcustomSchemaを保持すると、間違った日付形式のためSparkが例外をスローする(DateType will expect YYYY-MM-DD while mine is DD.MM.YYYY).
日付文字列をYYYY-MM-DDにフォーマットし直してから後でスキーマを適用する方法はありますか?または、パラメータを追加してSparkによって与えられたDateTypeも変更できますか?事前
ありがとうございました。 DataFrameReaderの利用可能なオプションのリストがあるかどうか教えてください。私はまだ1つを見つけることができませんでした。 –
https://github.com/databricks/spark-csv#features –