【发布时间】:2018-12-31 09:09:20
【问题描述】:
我正在尝试在数据框中加载一个 CSV 文件,我的目标是将第一行显示为 CSV 文件的列名。但是在使用下面的代码时,我收到了错误
Exception in thread "main" java.lang.AbstractMethodError
at scala.collection.TraversableLike$class.filterNot(TraversableLike.scala:278)
代码:
def main(args : Array[String]): Unit = {
val spark : SparkSession = SparkSession
.builder()
.master("local")
.appName("SparkSessioncsvExample")
.config("spark.some.config.option", "some-value")
.getOrCreate()
val df = spark.read
.format("csv")
.option("header", "true") //reading the headers
.load("D:/Scala/C2ImportCalEventSample.csv")}
但我可以使用代码加载文件:
val df = spark.sparkContext
.textFile("D:/Scala/C2ImportCalEventSample1.csv")
//.flatMap(header='true')
.map(line => line.split(","))
// .map(line => line.map()
.toDF()
但在第二个代码文件中被成功加载,但第一行没有作为数据框的 column_name。
spark version is: spark-2.3.2
scala 2.11.3
jdk1.8.0_20
sbt-1.2.7
感谢任何可以帮助我的人。
【问题讨论】:
-
你的第二种方法实际上是加载文本文件..所以你不会得到列名..你能否将示例 csv 粘贴到问题中
-
你的类路径中也有 scala 2.10 吗?
-
如何执行应用程序?
标签: apache-spark-sql apache-spark-dataset