【问题标题】:spark taking a long time for reading a compressed json on HDFS火花需要很长时间才能在 HDFS 上读取压缩的 json
【发布时间】:2021-02-19 10:55:46
【问题描述】:

我在 HDFS 上有 2 个压缩的 jsons 文件 (bz2)。我必须在 Spark 中加载它们。为此,我首先启动了 pyspark (shell),然后为此执行以下查询:

>> df = spark.read.load("hdfs://master:9000/data/db1/file_part*.bz2", format="json", sep=",", inferSchema="true")
    [Stage 0:>                              (8 + 4) / 503]

可以看出它正在加载数据。为什么会这样。据我所知,spark 在动作之前不执行任何操作(因为它是惰性的),那么在这种情况下有 503 个阶段。我必须创建一个数据框,然后转换为 tempView。在此使用 SQL 之后,执行一些 SQL 操作。就我而言,几乎所有设置都是默认设置。

其余部分数据处理如下:

df.createOrReplaceTempView("view1")
sqlContext.sql("select count(distinct(id)) from view1").show()

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    带有 DF 等的优化器与 RDD 处理的优化器不同。现在,它可以而且确实有时会在涉及 DF 的动作之前启动阶段。例如,压缩文件,推断架构和数据透视。

    在这种情况下,存在想要推断模式的情况。这是一个 过程缓慢。

    1. 您可以提供架构,这样可以节省时间。
    2. 或者在指定推断时使用采样百分比;那么这会更快,但您可能无法获得整体正确的架构。

    【讨论】:

    • 您能否详细说明一下。有什么可能的解决方案来摆脱这个(以节省时间)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2012-12-04
    • 2012-12-03
    • 2014-07-21
    相关资源
    最近更新 更多