【问题标题】:what the difference between sparksessioncatalog and sparkcatalog in iceberg冰山中的 sparksession 目录和 sparkcatalog 有什么区别
【发布时间】:2022-10-09 14:46:34
【问题描述】:

正如标题所说。 问题来自: 我使用这样的冰山目录连接到 spark-sql:

bin/spark-sql \
    --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
    --conf spark.sql.catalog.ice_test2=org.apache.iceberg.spark.SparkSessionCatalog \
    --conf spark.sql.catalog.ice_test2.type=hive \
    --conf spark.sql.catalog.ice_test2.uri=thrift://xxxxxxx:9083

但是当我执行use ice_test2.default; 时,出现错误:

java.lang.NullPointerException: Delegated SessionCatalog is missing. Please make sure your are replacing Spark's default catalog, named 'spark_catalog'.

而我用 SparkCatalog 运行 spark-sql 是可以的。

【问题讨论】:

    标签: apache-spark iceberg


    【解决方案1】:

    编辑以下原始问题编辑:

    org.apache.iceberg.spark.SparkSessionCatalog 的工作方式是首先尝试加载具有给定标识符的冰山表,然后回退此会话目录的默认目录行为。
    由于您使用 ice_test2 作为目录,因此它不知道要回退到哪个 SessionCatalog。
    由于错误表明您是否将使用 spark_catalog 而不是 ice_test2 它应该可以工作。

    引用 Iceberg documentation 以获取有关 Iceberg 的 SparkCatalogSparkSessionCatalog 之间区别的更多信息

    • org.apache.iceberg.spark.SparkCatalog - 支持 Hive Metastore 或 Hadoop 仓库作为目录
    • org.apache.iceberg.spark.SparkSessionCatalog - 将 Iceberg 表支持添加到 Spark 的内置目录中,并委托给非 Iceberg 表的内置目录

    【讨论】:

    • 你能用技术的方式说话吗?
    • 你有更具体的问题吗?两个目录最终都扩展了 Spark 的目录接口(StagingTableCatalog、ProcedureCatalog、SupportsNamespaces),不同之处在于 SparkCatalog 仅考虑冰山表,而 SparkSessionCatalog 使您能够加载您可能已经定义的非冰山表(例如 hive 表)
    • 添加更多关于我的疑问的消息。@Guy
    • 错误的原因是因为org.apache.iceberg.spark.SparkSessionCatalog 的工作方式是首先尝试加载冰山表,然后回退此会话目录的默认目录行为。由于您使用ice_test2 作为您的目录,因此它不知道要回退到哪个 SessionCatalog。由于错误表明您是否将使用 spark_catalog 而不是 ice_test2 它应该可以工作。
    • 你的话意味着我可以在连接配置中使用 spark_catalog 时默认访问冰山表。但是不使用use 命令切换到另一个命名空间?
    【解决方案2】:
    1. spark.sql.catalog.ice_test2=org.apache.iceberg.spark.SparkSessionCatalog 更改为spark.sql.catalog.ice_test2=org.apache.iceberg.spark.SparkCatalog
    2. 删除spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

      https://iceberg.apache.org/docs/latest/spark-configuration/#catalogs推荐

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 2018-03-19
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多