【问题标题】:How do I use Spark ORC indexes?如何使用 Spark ORC 索引?
【发布时间】:2018-04-10 20:14:40
【问题描述】:

从 spark 启用 orc 索引的选项是什么?

          df
            .write()
            .option("mode", "DROPMALFORMED")
            .option("compression", "snappy")
            .mode("overwrite")
            .format("orc")
            .option("index", "user_id")
            .save(...);

我正在编造.option("index", uid),我必须在其中放置什么来索引来自 orc 的“user_id”列。

【问题讨论】:

    标签: apache-spark orc


    【解决方案1】:

    你试过了吗:.partitionBy("user_id")

     df
            .write()
            .option("mode", "DROPMALFORMED")
            .option("compression", "snappy")
            .mode("overwrite")
            .format("orc")
            .partitionBy("user_id")
            .save(...)
    

    【讨论】:

    • 我认为 partitionBy 将为每个用户创建一个新文件,而不是创建一个索引。但你只是一个回答的人,所以我给你赏金。
    • @ForeverConfused 我正在研究这个。很快就会通知您。
    • @Achyuth,你有没有找到在 ORC 文件中创建索引的方法?直到今天我什么都没发现。在我看来,在 ORC 文件中利用索引的唯一方法是使用 Hive。如果有错误请纠正我。谢谢!
    • @JamesGan 没错,该文件已经在很多东西上建立了索引,统计列偏移等。实现性能的最佳方法是创建一个大约 200 到 300 mb 的 orc 文件。跨度>
    【解决方案2】:

    根据关于将 ORC 支持引入 Apache Spark 的原始博文,有一个配置旋钮可以在您的 spark 上下文中打开以启用 ORC 索引。

    # enable filters in ORC
    sqlContext.setConf("spark.sql.orc.filterPushdown", "true")
    

    参考:https://databricks.com/blog/2015/07/16/joint-blog-post-bringing-orc-support-into-apache-spark.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-04
      • 2016-07-25
      • 2015-05-08
      • 1970-01-01
      • 2019-01-17
      • 2019-02-04
      • 2021-05-22
      • 2019-02-11
      相关资源
      最近更新 更多