2017-07-24 66 views
0

我正在使用數據塊進行實木複合地板轉換。該文件是^ A分隔的。我在創建DF時明確提到了這一點,如下所示。但是,當我在數據中得到一個^ M字符時,它在那裏終止並給出格式不正確的行異常。有人可以請建議我如何處理這個?Databricks實木複合地板轉換

樣品部分從記錄
分裝^ Asome文本來這裏;^M^M獎勵:somemore文本;^A0.00

val dataframe = sparkSession.sqlContext.read 
        .format("com.databricks.spark.csv") 
        .option("delimiter", "\U0001") 
        .option("header", "false") 
        .option("mode","FAILFAST") 
        .option("treatEmptyValuesAsNulls","true") 
        .option("nullValue"," ") 
        .option("quote","") 
        .option("ignoreLeadingWhiteSpace", "true") 
        .option("ignoreTrailingWhiteSpace", "true") 
        .schema(schema) 
        .load(fileLocation) 

錯誤 畸形在FAILFAST模式行:推出^ Asome文本來到這裏;

回答

0

您可以通過使用sparkContext過如下

val dataframe = sparkSession.sparkContext.textFile(fileLocation).map(line => line.split("\\^A")).map(array => (array(0).trim, array(1).trim, array(2).trim)).toDF 

dataframe.show(false) 

輸出得到dataframe

+-------+-------------------------------------------------+----+ 
|_1  |_2            |_3 | 
+-------+-------------------------------------------------+----+ 
|Rollout|some text comes here;^M ^M Rewards:somemore text;|0.00| 
+-------+-------------------------------------------------+----+ 
+0

感謝您的回覆 但是,我們正在建立一個通用的框架,它處理1000+表和我們尋找更通用的解決方案 – Mg2729