就像标题上说的。问题来自:我用这样的冰山目录连接到spark:
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时,可以。
发布于 2022-05-16 07:51:08
编辑下列原始问题编辑:
org.apache.iceberg.spark.SparkSessionCatalog的工作方式是首先尝试加载带有给定标识符的冰山表,然后返回此会话目录的默认目录行为。
由于您使用ice_test2作为您的目录,所以它不知道该返回到哪个SessionCatalog。
正如错误所指示的,如果您要使用spark_catalog而不是ice_test2,那么它应该可以工作。
引用冰山文档以获得关于Iceberg's SparkCatalog和SparkSessionCatalog之间差异的更多信息
org.apache.iceberg.spark.SparkCatalog -支持Hive或Hadoop仓库作为目录org.apache.iceberg.spark.SparkSessionCatalog -将对Iceberg表的支持添加到Spark的内置目录中,并对非Iceberg表的内置目录进行委托。发布于 2022-10-09 06:44:08
spark.sql.catalog.ice_test2=org.apache.iceberg.spark.SparkSessionCatalog更改为spark.sql.catalog.ice_test2=org.apache.iceberg.spark.SparkCatalogspark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensionshttps://iceberg.apache.org/docs/latest/spark-configuration/#catalogs参考资料
https://stackoverflow.com/questions/72255648
复制相似问题