本文介绍了可以将长度与标头记录长度不同的记录放到bad_record目录中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将文件读取到这样的数据框中
I am reading a file into a dataframe like this
val df = spark.read
.option("sep", props.inputSeperator)
.option("header", "true")
.option("badRecordsPath", "/mnt/adls/udf_databricks/error")
.csv(inputLoc)
文件设置如下
col_a|col_b|col_c|col_d
1|first|last|
2|this|is|data
3|ok
4|more||stuff
5|||
现在,spark会将所有这些读取为可接受的数据.但是,我希望3|ok
被标记为不良记录,因为它的大小与标题大小不匹配.这可能吗?
Now, spark will read all of this as acceptable data. However, I want 3|ok
to be marked as a bad record because it's size does not match the header size. Is this possible?
推荐答案
val a = spark.sparkContext.textFile(pathOfYourFile)
val size = a.first.split("\\|").length
a.filter(i => i.split("\\|",-1).size != size).saveAsTextFile("/mnt/adls/udf_databricks/error")
这篇关于可以将长度与标头记录长度不同的记录放到bad_record目录中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!