我正在尝试使用镶木地板文件格式的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行。这有什么问题?
答案 0 :(得分:1)
当我在Windows中使用eclipse中的Spark时会发生此错误。我在spark-shell上尝试了同样的功能,它工作正常。我猜火花可能与Windows不兼容。
答案 1 :(得分:1)
Spark与Windows兼容。您可以在Windows中的spark-shell会话中运行程序,也可以使用spark-submit运行它,并使用必要的参数,例如" -master" (再次,在Windows或其他操作系统中)。 如果没有正确设置Spark环境等,你不能只将你的Spark程序作为Eclispe中的普通Java程序运行。你的问题与Windows无关。