2016-04-23 16 views
0

私はSpark Echoシステムの新機能で、CSVから寄せ木にデータを書き込もうとしていますが、NullPointerExceptionで失敗します。私が何が欠けているか分からない。sql conf nullpointer寄木細工

case class PdRecordData(id: String, dates: String, dayOfWeek: String,  pdDistrict: String,address: String, longitude: String, latitude: String) 

val sqlContext = new SQLContext(sc) 
sqlContext.createParquetFile[PdRecordData]("C:\\AS\\Parquet", true, new Configuration()).registerTempTable("PdRegistry") 
val csvFile = sc.textFile("C:\\AS\\crimeratedata\\samplefromorg.csv") 
val rowsWithHeader = csvFile.map { x => x.split(",").map { _.trim } } 
val maps = rowsWithHeader.map { case Array(id,dates, dayOfWeek, pdDistrict, address, longitude, latitude) => PdRecordData(id,dates, dayOfWeek, pdDistrict, address, longitude, latitude) } 
maps.foreach { x => sqlContext.sql("INSERT INTO PdRegistry SELECT " + "'" + x.dates + "','" + x.dayOfWeek + "','" + x.pdDistrict + "','" + x.address + "','" + x.longitude + "','" + x.latitude + "'")} 

以下の例外がスローされます。

java.lang.NullPointerException 
     at org.apache.spark.sql.SQLConf$class.getConf(SQLConf.scala:175) 
     at org.apache.spark.sql.SQLContext.getConf(SQLContext.scala:50) 
     at org.apache.spark.sql.SQLConf$class.dialect(SQLConf.scala:85) 
     at org.apache.spark.sql.SQLContext.dialect(SQLContext.scala:50) 
     at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:302) 
+0

一つのことをされてみSQL。 Apache Drillを使用して寄木細工のファイルにCSVを読み込むことは非常に簡単です。 [1]:https://drill.apache.org/ –

答えて

0

[1]のCSVからの私の寄木細工のファイルを作成し、その後にスパークを経て、Apacheのスパークジョブ内寄木細工のファイルを使用するために[Apacheのドリル]を使用し、私が行っているこの

val df = sqlContext.createDataFrame(maps) 
sqlContext.write.parquet(path) 
関連する問題