EMR+Apache Spark 中的 badRecordsPath
Posted
技术标签:
【中文标题】EMR+Apache Spark 中的 badRecordsPath【英文标题】:badRecordsPath in EMR+Apache Spark 【发布时间】:2020-05-05 19:54:42 【问题描述】:我正在寻找在 apache spark 读取文件中强制执行架构的解决方案。我的文件示例如下。
"1"~"SLACK"~2000
"2"~"GII"~2010
"3"~2015
我正在寻找识别第三行的解决方案。我正在使用 EMR+Spark。我知道 databricks spark 分布中有一个关于 badRecordsPath 的选项,但无法在 EMR 中的 spark 中找到相同的选项。
【问题讨论】:
以上问题的任何解决方案或建议。 你找到解决方案了吗? 【参考方案1】:我认为该选项仅适用于 databricks 分发,但不确定。 您可以尝试以下方法
val df = spark.read.format("csv").
.option("delimiter", delimiter)
.schema("_c0 String, C1 String, C2 Integer, _corrupt_record String")
.load("/tmp/output/path/")
以后可以过滤
val badRows = df.filter($"_corrupt_record".isNotNull)
【讨论】:
以上是关于EMR+Apache Spark 中的 badRecordsPath的主要内容,如果未能解决你的问题,请参考以下文章
markdown Amazon EMR上的Apache Spark
Apache Spark 2.4.0、AWS EMR、Spark Redshift 和 User 类抛出异常:java.lang.AbstractMethodError