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

aws emr 上的 spark 集群找不到 spark-env.sh

emr-spark

Java+Spark wordCount 与 EMR

在 AWS EMR 上运行 Spark 应用程序