【发布时间】:2018-10-09 11:51:23
【问题描述】:
如何将 csv 数据转换为 spark 中的自定义对象。下面是我的代码sn-p
val sparkSession = SparkSession
.builder()
.appName("Spark SQL basic example")
.master("local[2]")
.getOrCreate()
val citiData = sparkSession.read.option("header", "true").option("inferSchema", "true").csv(filePath) // removing header,and applying schema
//citiData.describe().show()
import sparkSession.implicits._
val s: Dataset[CityData] = citiData.as[CityData]
}
//Date,Open,High,Low,Close,Volume
case class CityData(processingDate: java.util.Date, Open: Double, High: Double, Low: Double, Volume: Double)
示例数据集:
Date,Open,High,Low,Close,Volume
2006-01-03,490.0,493.8,481.1,492.9,1537660
2006-01-04,488.6,491.0,483.5,483.8,1871020
2006-01-05,484.4,487.8,484.0,486.2,1143160
2006-01-06,488.8,489.0,482.0,486.2,1370250
我已将案例类 CityData 输入参数类型更改为 String ,然后导致“无法解析 'processingDate' 给定输入列:[Volume, Close, High, Date, Low, Open];”例外。
- 如何创建自定义对象
- 转换为 Date 对象的另一个棘手问题
我该怎么办?请分享您的想法。
【问题讨论】:
-
在做了一些研究之后,将我的数据集标题“Date”更改为 MyDate。并更改了我的案例类 "case class CityData(MyDate: Date, Open: String, High: String, Low: String, Volume: String)" 。现在如何更改为原始数据类型,如日期、双精度等
标签: scala apache-spark