2016-11-29 73 views
0

我正在使用以下代碼加載其中包含文本/註釋的csv文件。Spark - CSV文本加載解析錯誤

val data = sqlContext 
     .read 
     .format("com.databricks.spark.csv") 
     .option("header", "true") 
     .option("inferSchema", "true") 
     .option("parserLib", "UNIVOCITY") 
     .load(dataPath) 
     .na.drop() 

備註沒有任何特定的格式。在加載期間,我得到這個錯誤:

com.univocity.parsers.common.TextParsingException: Error processing input: null 
Identified line separator characters in the parsed content. This may be the cause of the error. The line separator in your parser settings is set to '\n'. 

我會很感激任何幫助。謝謝。

+0

從做文件範圍的任何記錄超過一行,IE瀏覽器的數據有有'\ N'裏面你認爲哪些字符成爲「一個記錄」? – radumanolescu

+0

問題,我看到它的方式是與「」或[[種類的字符。而且,是的,有\ n個字符。但是,我需要火花把/ t/n當作一個記錄。爲什麼它處理\ n ... – Ahsan

回答

2

我沒有特權評論問題,我添加了答案。

當您在做na.drop()時,也可以使用option("mode", "DROPMALFORMED")

val data = sqlContext 
     .read 
     .format("com.databricks.spark.csv") 
     .option("header", "true") 
     .option("inferSchema", "true") 
     .option("mode", "DROPMALFORMED") 
     .option("parserLib", "UNIVOCITY") 
     .load(dataPath) 
     .na.drop() 

BTW,databricks火花CSV是Spark內置2.0 +