Databricks实木复合地板转换

问题描述:

我正在使用数据块进行实木复合地板转换。该文件是^ 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文本来到这里;

您可以通过使用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