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|
+-------+-------------------------------------------------+----+
感谢您的回复 但是,我们正在建立一个通用的框架,它处理1000+表和我们寻找更通用的解决方案 – Mg2729