无法在Spark中将CSV文件作为数据帧加载

时间:2018-12-31 09:09:20

标签: apache-spark-sql apache-spark-dataset

我正在尝试在数据框中加载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

感谢任何可以帮助我的人。

1 个答案:

答案 0 :(得分:1)

java.lang.AbstractMethodError几乎总是意味着您在类路径上的库与编译时不同。在这种情况下,我将检查以确保您在类路径上具有正确版本的Scala(并且只有一个版本的scala)。