我从Spark入手,需要解析的文件具有以下形状:
"VARIABLE;MOD;LIBMOD"
"CDEXE;6;PBS between 25000 and 50000 euros"
如何使用其中的数据集[ValueDescriptor]?
ValueDescriptor为:
case class ValueDescriptor(variableName: String, value:String, label: String)
我只发现了如何删除列周围而不是每一行周围的引号。
到目前为止,我使用的是这样的代码:
sparkSession
.read
.option("header", "true")
.option("delimiter", ";")
.csv("file.txt")
.withColumnRenamed("VARIABLE", "variableName")
.withColumnRenamed("MOD", "value")
.withColumnRenamed("LIBMOD", "label")
.as[ValueDescriptor]
答案 0 :(得分:2)
您可以先将其阅读为文本,以删除多余的引号
val txtDF = sparkSession
.read
.textFile("file.txt")
.map(_.stripPrefix("\"").stripSuffix("\""))
然后将其加载为CSV
sparkSession
.read
.option("header", "true")
.option("delimiter", ";")
.csv(txtDF)
.withColumnRenamed("VARIABLE", "variableName")
.withColumnRenamed("MOD", "value")
.withColumnRenamed("LIBMOD", "label")
.as[ValueDescriptor]