Spark SQL中的Parquet文件

时间:2014-08-26 12:01:37

标签: apache-spark

我正在尝试使用镶木地板文件格式的Spark SQL。当我尝试基本的例子时:

object parquet {

  case class Person(name: String, age: Int)

  def main(args: Array[String]) {

    val sparkConf = new SparkConf().setMaster("local").setAppName("HdfsWordCount")
    val sc = new SparkContext(sparkConf)
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    // createSchemaRDD is used to implicitly convert an RDD to a SchemaRDD.
    import sqlContext.createSchemaRDD

    val people = sc.textFile("C:/Users/pravesh.jain/Desktop/people/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt))
    people.saveAsParquetFile("C:/Users/pravesh.jain/Desktop/people/people.parquet")

    val parquetFile = sqlContext.parquetFile("C:/Users/pravesh.jain/Desktop/people/people.parquet")
  }
}

我得到一个空指针异常:

  

线程“main”java.lang.NullPointerException中的异常   在org.apache.spark.parquet $ .main(parquet.scala:16)

这是saveAsParquetFile行。这有什么问题?

2 个答案:

答案 0 :(得分:1)

当我在Windows中使用eclipse中的Spark时会发生此错误。我在spark-shell上尝试了同样的功能,它工作正常。我猜火花可能与Windows不兼容。

答案 1 :(得分:1)

Spark与Windows兼容。您可以在Windows中的spark-shell会话中运行程序,也可以使用spark-submit运行它,并使用必要的参数,例如" -master" (再次,在Windows或其他操作系统中)。 如果没有正确设置Spark环境等,你不能只将你的Spark程序作为Eclispe中的普通Java程序运行。你的问题与Windows无关。